多くの単語を含む 1 つの非常に長い文字列から単語を文字列として抽出しようとしています。この大きな文字列の塊を取得し、for ループで移動し、文字列を作成しながらハッシュセットに追加し、処理中の単語数を追跡しようとしています。すべてをビルドし、Eclipse が明らかなエラーを示さなかったとき、私は自分自身をとても誇りに思っていました。テストに行ったとき、0 のカウンター、0 の hashset.size、および空のハッシュセットがありました :(
これが私がいじっているコードです:
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;
}
タイヤを探して蹴り続けます。それまでの間、何か提案があれば、ここにある私の小さなホーム オフィスで精神的に良い雰囲気をたくさん与えてあげましょう。ここで、少なくとも 1 つまたは 2 つの非常に根本的なエラーがあるようです。明らかに、想定されているようにループを反復処理していないためです。StringBuilder を HashSets および Character クラスと一緒に使用し、これらのいずれも特によく理解していないにもかかわらず、すべてマッシュアップしたことが関係していると思われます。はい、私はオラクルのドキュメントに注いだ。