特定单词之前的单词数

时间:2011-09-27 23:23:44

标签: java string word

虽然java中的indexOf()给出了句子中“the”之前的字符数有一天我看到了美丽的鸟,我想知道获取单词数量的方法在它之前。例如,给定句子的输出将是4!

谢谢。

4 个答案:

答案 0 :(得分:1)

最简单的方法是计算“the”之前的空格字符。

One day I saw the
   ^   ^ ^   ^

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

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

答案 1 :(得分:1)

查看java.util.Scanner

扫描并计算单词,直到您点击

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

public static void main(String args[]) {
    System.out.println(indexOfWord("One day I saw the beautiful bird", "the"));
}

private static int indexOfWord(String input, String word) {
    Scanner s = new Scanner(input);
    Pattern p = Pattern.compile("\\S*");
    int count = 0;
    while (s.hasNext(p)) {
        if (word.equals(s.next(p)))
            return count;
        count++;
    }
    return -1;
}

答案 2 :(得分:1)

你必须将字符串分成单词,然后你就可以找到单词的索引。

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

如果您需要更有效的方法,请参阅Sascha指出的Scanner

答案 3 :(得分:0)

使用空格作为分隔符使用String.split()。然后在到达单词之前计算返回数组中的元素数。