我试图从一个包含许多单词的非常长的字符串中提取单词作为字符串。我正在尝试获取一个字符串的这个大块,用 for 循环遍历它,边走边构建字符串,将它们添加到哈希集中,并跟踪我在这个过程中有多少单词。当我构建完所有东西并且eclipse没有显示任何明显的错误时,我感到非常自豪,然后当我去测试它时,我有一个0计数器,0 hashset.size和一个空的hashset :(
这是我一直在捏造的代码:
public int countUniqueWords(String line) {
hashset = new HashSet<String>();
word = new StringBuilder();
int endOfLine = line.length() - 1;
boolean isWord = false;
String stringWord = null;
Integer counter = 0;
for (int i = 0; i < line.length(); i++) {
if (Character.isLetter(line.charAt(i)) == true && i != endOfLine) {
word.append(line.charAt(i));
} else if (Character.isLetter(line.charAt(i)) == false && isWord == true) {
counter++;
stringWord = word.toString();
hashset.add(stringWord);
word = null;
isWord = false;
} else if (Character.isLetter(line.charAt(i)) && i == endOfLine) {
counter++;
stringWord = word.toString();
hashset.add(stringWord);
}
}
System.out.println(counter);
System.out.println(hashset.size());
System.out.println(hashset);
return counter;
}
我将继续搜索并踢轮胎。与此同时,如果有人有任何建议,我会在我的小家庭办公室里给你很多精神上的良好氛围。似乎我在这里犯了至少一两个非常基本的错误,因为显然它甚至没有像预期的那样迭代循环。我怀疑这与我将 StringBuilder 与 HashSets 和 Character 类一起使用有关,所有这些都混合在一起,而对其中的任何一个都没有特别好的理解。是的,我已经倾注了 oracle 文档。