私は完全に困惑しています。line.split("\\s+")
ファイルの最初の行で実行すると、配列の最初の値に空の文字が含まれます。
equals テストが失敗し続けた後、デバッガーを起動すると、ファイル内の単語の最初の文字の最初の文字が空です (スペースではなく空です)。
これがどのように起こっているかについての説明と解決策をいただければ幸いです。
最初の文字の内容をコピーし、16 進コードを調べて、何が起こっているのかを把握する必要がありました。
値は でしたZERO WIDTH NON-BREAKING SPACE (U+FEFF)
。Java の trim() は空白を「空白としてU+0020 (通常の空白文字) までのすべて」としてのみ定義するため、この文字は捕捉されませんでした。
コードにこの文字の特別なケースを追加することになりました。
最初に先頭/末尾のスペースを削除します。
line = line.trim();