我想找出一个字符串中有多少个单词,但忽略其中相似的单词。
例如,main方法应返回9的8 insetad。
我希望它是一个方法,接受一个字符串类型的参数,返回一个整型值,我只允许使用bacics,所以不能使用HashMaps,ArrayLists,只能使用charAt,length,或者substring,使用循环和if语句.
public static void main(String[] args) {
countUniqueWords("A long long time ago, I can still remember");
public static int countUniqueWords(String str) {
char[] sentence = str.toCharArray();
boolean inWord = false;
int wordCt = 0;
for (char c : sentence) {
if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') {
if (!inWord) {
wordCt++;
inWord = true;
}
} else {
inWord = false;
}
}
return wordCt;
}
3条答案
按热度按时间carvr3hs1#
不要强迫自己选择有限的选项,学习流媒体API。你的问题很简单:
1.[可选步骤] 删除所有非字母数字字符
1.按空插槽拆分字符串
1.删除重复项
1.将它们加在一起
nbysray52#
要忽略字符串中的相同单词,可以组合使用Java Stream API中的split和distinct方法。
jhkqcmku3#
试试这个: