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

标签 java stringbuffer

全部,

我需要计算字符串缓冲区中字符串中的特定单词。我已经制作了一个程序(请参见下文)来计算字符串中的特定字符,但不确定如何对单词执行此操作。例如...我的字符串是“猫可以杀死老鼠,但老鼠不能杀死猫”。我需要计算单词 cat 在字符串中出现的次数。

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

维库

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);




}

}

最佳答案

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

解决方案

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() 比较每个数组元素> 方法。

在上面的代码中,我检查字符串“a”在“a是a e i o u中的第一个元音”中的出现情况。

输出

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);

关于Java String-buffer - 如何计算字符串中特定单词的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27086992/

相关文章:

java - 与 Jackson 相同的嵌套 XML 标签

java - 如何使用Java链接到pdf文件

java - 如何在事件驱动的 Java 中避免繁忙的 while 循环

java - StringBuffer 还是同步方法?

java - 字符串缓冲区 - OutOfMemoryError

java - 数组列表输出

java - 我们可以从evernote文件中提取文本内容吗

java - 如何在JAVA中修剪StringBuffer中的空白

java - 为什么不让 StringBuilder 和 StringBuffer 实现一个公共(public)接口(interface)呢?

java - CheckStyle - 重写方法的 JavaDoc