全部,
我需要计算字符串缓冲区中字符串中的特定单词。我已经制作了一个程序(请参见下文)来计算字符串中的特定字符,但不确定如何对单词执行此操作。例如...我的字符串是“猫可以杀死老鼠,但老鼠不能杀死猫”。我需要计算单词 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
使用StringBuffer
和StringTokenizer
的解决方案
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/