Java String-buffer - 如何计算字符串中特定单词的出现次数

时间:2014-11-23 08:26:25

标签: java stringbuffer

所有

我需要计算stringbuffer中字符串中的特定单词。我已经制作了一个程序(请参见下文)来计算字符串中的特定字符,但不知道如何为单词执行此操作。例如......我的字符串是"猫可以杀死鼠标但鼠标不能杀死猫#34;。我需要计算字符串中出现单词cat的次数。

非常感谢你的帮助。 亲切的问候,

Viku

public static void main(String [] args){

    StringBuffer myBuffer = new StringBuffer("a is the first vowel in a e i o u");
    int charCount = 0;
    for(int i =0 ; i< myBuffer.length(); i++){
        if(myBuffer.charAt(i) == 'a' || myBuffer.charAt(i) == 'e' || 
                myBuffer.charAt(i) == 'i' || myBuffer.charAt(i) == 'o' ||
                myBuffer.charAt(i) == 'u'){
            charCount++;
        }
    }
    System.out.println(nL + "Compute of Vowels in String: " + charCount);




}

}

2 个答案:

答案 0 :(得分:2)

您的代码用于计算字符串中元音的出现次数,而不是no。字符串中特定单词的出现。 这是我的解决方案。

解决方案

String myBuffer = "a is the first vowel in a e i o u";

String checkWord = "a"; // this is the word to match in the string
int count = 0;
for(String word: myBuffer.split("\\s")) {
    if(word.equals(checkWord)) {
        count++;
    }
}
System.out.println(count);

我使用myBuffer.split("\\s")将字符串拆分为一个单词数组,并使用String.equals()方法比较每个数组元素。

在上面的代码中,我正在检查String&#34; a&#34; in&#34; a是e i o u&#34;中的第一个元音。

输出

2

使用StringBufferStringTokenizer

的解决方案
StringBuffer myBuffer = new StringBuffer("a is the first vowel in a e i o u");
StringTokenizer st = new StringTokenizer(myBuffer.toString());
String checkWord = "a";
int count = 0;

while(st.hasMoreTokens()) {
    String word = st.nextToken().toString();
    if(word.equals(checkWord)){
        count++;
    }
}
System.out.println(count);

答案 1 :(得分:1)

您可以将句子拆分为字符串数组并迭代数组以查找匹配的单词

String s = String.valueOf(myBuffer);
String[] array = s.split(" ");
for (int i = 0; i < array.length; i++) {
    if(array[i].equals("cat")){
        charCount++;
    }
}