Java 特定单词前面的单词数

Java 特定单词前面的单词数,java,string,word,Java,String,Word,虽然java中的indexOf(the)给了我句子中“the”前面的字符数,但有一天我看到了这只美丽的鸟,我想知道如何获得它前面的单词数。例如,给定句子的输出为4 谢谢。最简单的方法是计算“The”前面的空格字符 有4个空格,所以有4个单词 当然,您可能需要为单词或标点符号之间的多个空格添加一些特殊处理。最简单的方法是计算“The”前面的空格字符 有4个空格,所以有4个单词 当然,您可能需要为单词或标点符号之间的多个空格添加一些特殊处理。看看 扫描并数一数单词,直到你击中目标 编辑:非常简单的示

虽然java中的indexOf(the)给了我句子中“the”前面的字符数,但有一天我看到了这只美丽的鸟,我想知道如何获得它前面的单词数。例如,给定句子的输出为4


谢谢。

最简单的方法是计算“The”前面的空格字符

有4个空格,所以有4个单词


当然,您可能需要为单词或标点符号之间的多个空格添加一些特殊处理。

最简单的方法是计算“The”前面的空格字符

有4个空格,所以有4个单词

当然,您可能需要为单词或标点符号之间的多个空格添加一些特殊处理。

看看

扫描并数一数单词,直到你击中目标

编辑:非常简单的示例(未经测试;-)

看看

扫描并数一数单词,直到你击中目标

编辑:非常简单的示例(未经测试;-)


您必须首先将字符串拆分为单词,然后才能找到单词的索引

public int indexOfWord(String sentence, String word) {
  return Arrays.asList(sentence.split("\\s+")).indexOf(word);
}

如果您需要更有效的方法,请参阅Sascha指出的
扫描仪。

您必须首先将字符串拆分为单词,然后才能找到单词的索引

public int indexOfWord(String sentence, String word) {
  return Arrays.asList(sentence.split("\\s+")).indexOf(word);
}

如果需要更有效的方法,请参阅Sascha指出的
扫描器。

使用
String.split()
使用空格作为分隔符。然后计算返回数组中的元素数,然后再进入单词

使用
String.split()
使用空格作为分隔符。然后计算返回数组中的元素数,然后再进入单词

好的,我可以使用单词迭代器来跟踪单词的数量,并将其累加,直到我在一个句子中找到“the”。但是还有其他更简单的方法吗?谢谢。你对“单词”的确切定义是什么?=)有一天我看到了这只美丽的鸟,它有7个单词。我可以使用单词迭代器来追踪单词的数量,并将其累加,直到我在一个句子中找到“the”。但是还有其他更简单的方法吗?谢谢。你对“单词”的确切定义是什么?=)有一天我看到了这只美丽的鸟,它有7个单词。我认为对于这种方法来说,
countWords
是一个糟糕的名字选择。对我来说,
countWords
说“这个词在目标字符串中出现了多少次?”当有人使用您的API时,如果一个名为
countWords
的方法返回-1,我会感到震惊@glowcoder,是的,你绝对正确!谢谢你的关注。我会换的。我的手指建立了一个直接进入大脑的记忆通道,并在没有任何认知交互的情况下快速地写下了句子。这是一个极好的解决方案。谢谢萨沙!我认为对于这种方法来说,
countWords
是一个糟糕的名称选择。对我来说,
countWords
说“这个词在目标字符串中出现了多少次?”当有人使用您的API时,如果一个名为
countWords
的方法返回-1,我会感到震惊@glowcoder,是的,你绝对正确!谢谢你的关注。我会换的。我的手指建立了一个直接进入大脑的记忆通道,并在没有任何认知交互的情况下快速地写下了句子。这是一个极好的解决方案。谢谢萨沙!有一天我看到了输入的“
”?哈哈,对不起,看来是自动格式化把它们取出来了。那里应该有空间。比如,
“有一天——我——看到了“
只是用空格而不是破折号。是的,这就是我所说的“对多个空格的特殊处理”。在这种情况下,您需要一个类似于例程的状态机,而不是简单的空间计数。但这并不需要更多的努力,就我个人而言,我还是更喜欢正则表达式或类似的“复杂”解决方案。。。今天一定很晚了,我完全没看到。好吧,那好吧。输入的内容呢?有一天我看到了输入的内容。哈哈,对不起,看来是自动格式化把它们取出来了。那里应该有空间。比如,
“有一天——我——看到了“
只是用空格而不是破折号。是的,这就是我所说的“对多个空格的特殊处理”。在这种情况下,您需要一个类似于例程的状态机,而不是简单的空间计数。但这并不需要更多的努力,就我个人而言,我还是更喜欢正则表达式或类似的“复杂”解决方案。。。今天一定很晚了,我完全没看到。好吧,那好吧。
public int indexOfWord(String sentence, String word) {
  return Arrays.asList(sentence.split("\\s+")).indexOf(word);
}