※ ChatGPTを利用し、要約された質問です(原文:文字列の比較について)
BufferedReaderを使用してファイルを読み込む際に文字列を比較すると文字コードが変わる
このQ&Aのポイント
BufferedReaderを使用してファイルを読み込む際に、カンマで分割した文字列を比較すると文字コードが変わってしまう現象が発生します。
この現象は、文字列の比較時にバイト列に変換され、文字コードが異なる場合には異なる結果が得られるためです。
解決するためには、文字列の比較前に文字コードの正規化を行う必要があります。文字コードを統一するためには、文字列を正規化するメソッドを使用するなどの対策があります。
BufferedReaderでファイルを読んだのちに、見出しの文字列をカンマで分割して
文字列を比較しようとしています。
ですが、分割すると、文字列が別な文字コードによる表記に変わってしまいます。
なぜでしょうか?
また、解決方法などのヒントなどあれば教えてください。
BufferedReader buffReader =
new BufferedReader(
new FileReader("/home/masa/Desktop/Sample.csv"));
String s;
int ini=0;
int wamei=0;
int i=0;
while((s = buffReader.readLine())!= null){
String[] str = s.split(",", -1);
//System.out.println(s);
if (i == 0) {
for(int j=0; j<str.length;j++){
System.out.println(String.toString(str));
if(str.equals("五十音")){ini = j;}
System.out.println("五十音"+ini);
if(str.equals("a")){wamei = j;}
System.out.println("和名"+wamei);
//System.out.println(j);
}
}
i++;
お礼
返信ありがとうございます。 返事が遅くなってすみません。 >System.out.println(String.toString(str)); この部分はよく理解せずにメソッドを使っていました。