📅  最后修改于: 2023-12-03 15:41:38.645000             🧑  作者: Mango
当我们需要统计一个字符串中单词的数量时,可以使用Java编写一个方法来实现。
public static int countWords(String s) {
String[] words = s.split("\\s+");
int count = 0;
for (String word : words) {
if (word.matches("[a-zA-Z]+")) {
count++;
}
}
return count;
}
在上面的代码中,我们使用了String的split()方法按照空格分割字符串,并声明累加器count为0。然后我们遍历分割后的字符串数组,对于每个字符串,使用正则表达式判断它是否是一个单词。如果是一个单词,累加器count加一。最终返回累加器count的值。
我们编写几个测试用例来检验我们的countWords()方法是否正确。
@Test
public void testCountWords() {
String s1 = "Hello world";
int expected1 = 2;
assertEquals(expected1, countWords(s1));
String s2 = "Only 5 words should be counted";
int expected2 = 5;
assertEquals(expected2, countWords(s2));
String s3 = " leading and trailing spaces ";
int expected3 = 4;
assertEquals(expected3, countWords(s3));
String s4 = "15wordsdonotmakeasentence";
int expected4 = 0;
assertEquals(expected4, countWords(s4));
}
我们可以看到,我们的countWords()方法通过了所有的测试用例。