1

次のコードを実行し、入力を求めるプロンプトが表示されたら 50 と入力します。

    private static int nPeople;

public static void main(String[] args) {

    nPeople = 0;
    System.out.println("Please enter the amount of people that will go onto the platform : ");
    BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
    try {
        nPeople = keyboard.read();
    } catch (IOException e) {
        e.printStackTrace();
    }

    System.out.println(" The number of people entered --> " + nPeople);
}

}

次の出力が得られます。

プラットフォームに入る人数を入力してください: 50 入った人数 --> 53

50 と入力したときに 53 が返されるのはなぜですか? ありがとう。

4

4 に答える 4

4

BufferedReader#read()メソッドは、入力から a を読み取りsingle characterます。

したがって、50入力として渡すと、それを読み取って同等のもの5に変換し、変数に格納します。ASCII53int

BufferedReader#readLine()ここでは、テキスト行を読み取るメソッドが必要だと思います。

try {
    nPeople = Integer.parseInt(keyboard.readLine());  
} catch (IOException e) {
    e.printStackTrace();
}

Integer.parseInt文字列表現を に変換するメソッドが必要ですinteger

于 2012-11-19T12:11:53.607 に答える
1

BufferedReaderキーボード=newBufferedReader(new InputStreamReader(System.in)); {nPeople = Keyboard.read();を試してください。} catch(IOException e){e.printStackTrace(); }

上記のコードは、入力された入力の最初の文字のみを読み取ります。

そして、その文字のASCII値を表示していました。

使ってみてください

 npeople = Integer.parseInt(keyboard.readLine());
于 2012-11-19T12:15:09.700 に答える
0

このようなことをしてみてください:

private static int nPeople;

public static void main(String[] args) {

    nPeople = 0;
    System.out.println("Please enter the amount of people that will go onto the platform : ");
    BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
    try {
        String input = reader.readLine();
        nPeople =  Integer.parseInt(input);
    } catch (IOException e) {
        e.printStackTrace();
    }

    System.out.println(" The number of people entered --> " + nPeople);
}
于 2012-11-19T12:16:03.220 に答える
0

「5」は 53 に等しいため (ASCII コード)

詳細については、これこれを参照してください。

于 2012-11-19T12:09:20.217 に答える