• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字列の比較について)

BufferedReaderを使用してファイルを読み込む際に文字列を比較すると文字コードが変わる

このQ&Aのポイント
  • BufferedReaderを使用してファイルを読み込む際に、カンマで分割した文字列を比較すると文字コードが変わってしまう現象が発生します。
  • この現象は、文字列の比較時にバイト列に変換され、文字コードが異なる場合には異なる結果が得られるためです。
  • 解決するためには、文字列の比較前に文字コードの正規化を行う必要があります。文字コードを統一するためには、文字列を正規化するメソッドを使用するなどの対策があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • zz4576
  • ベストアンサー率100% (1/1)
回答No.1

System.out.println(String.toString(str)); ↓ System.out.println(str[j]); にしたら表示できるんじゃないでしょうか? 質問のままだと、配列の番地を文字列にして出力しようとしてるんだと思います。

MASA0901
質問者

お礼

返信ありがとうございます。 返事が遅くなってすみません。 >System.out.println(String.toString(str)); この部分はよく理解せずにメソッドを使っていました。

その他の回答 (1)

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.2

FileReaderクラスを使う場合はデフォルトの文字コードで読み込まれますが、 csvファイルの文字コードと合っていますか? もし違うならFileInputStreamクラスとInputStreamReaderクラスを使って 文字コードを指定してファイルを読み込むようにしてください。 また、他のコードも???なところが・・・ >System.out.println(String.toString(str)); String#toString(String[]) のようなメソッドはないです。 >f(str.equals("五十音")){ini = j;} >if(str.equals("a")){wamei = j;} Stringの配列と文字列を比較しているので常にfalseになるはずです。

MASA0901
質問者

お礼

返信ありがとうございます。 返事が遅くなってすみません。 >Stringの配列と文字列を比較しているので常にfalseになるはずです。 この部分のケアレスミスでした。

関連するQ&A

専門家に質問してみよう