我正在制作一个聊天机器人,需要能够计算用户输入的单词数,然后才能找到他们的关键字。
我已经能够计算字符串中的单词总数,但不能计算单词之前的单词。
用户输入“count”,激活wordcount方法。提示他们键入一个句子,然后键入一个关键字在句子中查找。程序输出关键字在句子中是什么词(例如这是第3个词)。
我已尝试使用for循环遍历字符并查找空格,但for循环中的if不会激活:
对于(int i=psn-1;i
if(短语.charAt(i)==“”){//if1
空格=空格1;
private int findKeyword(String statement, String goal, int startPos) {
String phrase = statement.trim().toLowerCase();
goal = goal.toLowerCase();
int psn = phrase.indexOf(goal, startPos);
while (psn >= 0) {
// Find the string of length 1 before and after
// the word
String before = " ", after = " ";
if (psn > 0) {
before = phrase.substring(psn - 1, psn);
// System.out.println("If 1 at "+psn);
}
if (psn + goal.length() < phrase.length()) {
after = phrase.substring(psn + goal.length(),
psn + goal.length() + 1);
System.out.println("If 2 at " + psn);
}
// If before and after aren't letters, we've
// found the word
if (((before.compareTo("a") < 0) ||
(before.compareTo("z") > 0)) // before is not a
//
&& ((after.compareTo("a") < 0) ||
(after.compareTo("z") > 0))) {
System.out.println("If 3 at " + psn);
return psn;
}
//
// The last position didn't work, so let's find
// the next, if there is one.
psn = phrase.indexOf(goal, psn + 1);
}
return -1;
}
我正在制作一个聊天机器人,需要能够计算用户输入的单词数,然后才能找到他们的关键字。
我已经能够计算字符串中的单词总数,但不能计算单词之前的单词。
(例如,你的单词是句子中的第三个单词)
更好的方法可能是简单地将句子字符串拆分为空格字符,然后在结果列表中获取关键字的索引。
示例:
String[] split = sentence.split(" ");
int numberOfWordsBeforeKeyword = Arrays.asList(split).indexOf(keyword);
通过使用String.split()
,您可以更轻松地实现您想要的目标。例如:
String[] words = statement.split(" "); // array of words that are separated by a space
for (int i = 0; i < words.length; i++){
if (words[i].equals(goal))
System.out.println("word found in "+i+" words);
}
我实际上是一个新手到Java,并试图做一个小项目。所以,在我的项目中,我想让用户输入一个句子,我想让程序在句子中搜索特定的单词,并基于此给出输出。我使用NetBeans开发我的应用程序。 我的代码是这样的 我知道这段代码没有意义,也不会运行,但我这样说是为了让人们对我试图实现的目标有一个大致的了解。 请帮帮我.
问题内容: 我正在尝试编写一个函数来清理用户输入。 我不是要使其完美。我宁愿用小写字母表示一些名称和缩写,也不愿用大写字母表示完整的段落。 我认为该函数应使用正则表达式,但是我对这些表达式很不好,需要一些帮助。 如果以下表达式后跟一个字母,我想将该字母大写。 更好的是,该函数可以在“。”,“!”之后添加一个空格。和“?” 如果这些后面跟有一封信。 如何做到这一点? 问题答案: 由于PHP 5.5.
我一直在使用Stanford POS Tagger标记句子中的词性。我从stackoverflow上的留档和其他问题中学到的是,下面的代码给出了句子的POS标记 但我想要的是获得单个单词的POS标签。一种可能的方法是分解输入字符串并逐字逐句地向Tagger提供输入,但它似乎并不优雅,我认为它增加了出错的机会。Javadoc说应用函数可以返回标记单词的数组列表,但我无法成功调用此函数。任何想法,我怎
本文向大家介绍如何在Java中为特定单词解析字符串中的单词?,包括了如何在Java中为特定单词解析字符串中的单词?的使用技巧和注意事项,需要的朋友参考一下 Java中有多种方法,您可以使用这些方法为特定单词解析字符串中的单词。在这里,我们将讨论其中的3个。 contains()方法 String类的contains()方法接受一个字符序列,并验证它是否存在于当前String中。如果找到,则返回tr
我有一个文本“你好单词”“单词你好”,我如何获得“你好单词”“单词你好”(例如) ''' let string1="Hello Word"让引用String1="Hello Word" let string2="Word Hello"让引用String2="word Hello" '''
我在大学上Java入门课程。我的作业是写一个程序来显示一个句子中1个字母单词的数量,一个句子中2个字母单词的数量...等等。句子是用户输入的。我应该使用一个循环,但不允许使用数组。 然而,现在只是开始,我只是想找出句子第一个单词的字母数。我得到的结果要么是字母数不正确,要么是字符串索引超出范围。 例如,当我输入“这是一个句子”时,它会给我“字符串索引超出范围:4”对此的任何帮助都将不胜感激。