- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字列の比較について)
BufferedReaderを使用してファイルを読み込む際に文字列を比較すると文字コードが変わる
このQ&Aのポイント
- BufferedReaderを使用してファイルを読み込む際に、カンマで分割した文字列を比較すると文字コードが変わってしまう現象が発生します。
- この現象は、文字列の比較時にバイト列に変換され、文字コードが異なる場合には異なる結果が得られるためです。
- 解決するためには、文字列の比較前に文字コードの正規化を行う必要があります。文字コードを統一するためには、文字列を正規化するメソッドを使用するなどの対策があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
System.out.println(String.toString(str)); ↓ System.out.println(str[j]); にしたら表示できるんじゃないでしょうか? 質問のままだと、配列の番地を文字列にして出力しようとしてるんだと思います。
その他の回答 (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になるはずです。
質問者
お礼
返信ありがとうございます。 返事が遅くなってすみません。 >Stringの配列と文字列を比較しているので常にfalseになるはずです。 この部分のケアレスミスでした。
お礼
返信ありがとうございます。 返事が遅くなってすみません。 >System.out.println(String.toString(str)); この部分はよく理解せずにメソッドを使っていました。