アプリ版:「スタンプのみでお礼する」機能のリリースについて

BufferedReader.readline()で読み込んだ文字列の長さがおかしい。

質問させてください。
BufferedReader.readline()を使用して入力した文字列の長さを表示させると、値が正しく表示されません。

例えば、「東京都千代田区」と入力した場合、長さは9と表示されます。
(東京都と入力すると長さは3と表示されます)

どなたか原因をご存知ありませんでしょうか。

コードを以下に記載します。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Question_1_1 {
/*
* メイン関数
* @param args 起動引数
*/
static public void main(String[] args) throws IOException{
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader buff = new BufferedReader(input);
String str = "";

System.out.println("文字列入力>");
str = buff.readLine();
System.out.println("文字列長さ : " + str.length());

// ストリームを閉じる
input.close();
buff.close();

}
}

A 回答 (1件)

文字コードが食い違っているのだと思います。


コンソールから呼んでいるのであればchcpするか、もしEclipseを使っているならeclipse.iniに次の一行を足してみてください。


-Dfile.encoding=utf-8
    • good
    • 0
この回答へのお礼

ありがとうございます。

iniファイルに追記すると、正常に動作しました。

ただ、「文字列入力>」の前('文'の前にカーソルがある状態)で文字入力を行うと、やはり正常に文字の長さを取得しません。

原因について心当たりはありませんでしょうか。
お手数をおかけします。

動作環境はEclipseです。

お礼日時:2010/06/02 09:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!