重複の可能性:
Javaで文字列配列の要素を比較する方法は?
配列内の単語を文字列に設定して、重複を含まない単語の数を計算しようとしていますが、ifステートメントで重複をチェックしようとすると、「NullPointerException」と表示され、nullが含まれていることを意味します。配列。配列にnull値があるのはなぜですか?
文字列配列を設定するためのコードは次のとおりです。入力は「他の人に行うように、他の人に行う」です。
String[] stringArray = new String[wordCount];
while (!line.equals("DONE"))
{
for ( int k = 0 ; k < wordCount ; k++)
{
//put tokens into string array
StringTokenizer tokens = new StringTokenizer(line);
stringArray[k] = tokens.nextToken();
}
}
NullPointerExceptionを引き起こす比較およびifステートメントのコードは次のとおりです。
for ( int j = 0 ; j < wordCount ; j++)
{
for (int i = j+1 ; i < wordCount ; i++)
{
if (stringArray[i] == null)
{
stringArray[i] = "null";
}
else if (stringArray[i].compareTo(stringArray[j]) == 0 && i!=j)
{
//duplicate
System.out.print("\n" + stringArray[j]);
duplicates++;
}
}
}
wordCount -= duplicates;
System.out.print("\nNumber of words, not including duplicates: " + wordCount);
nullチェックを試みていますが、stringArray [i]を「null」に変更するとstringArray[j]も変更されるため、重複がさらに増えるため、結果はまだ大きく異なります。
助けてください!私は長い間これを解決しようとしてきました