1

当我设置一个对象数组时,例如:

Player[] player = new Player[amountOfPlayers];

我用:

amountOfPlayers = br.read();

获取变量amountOfPlayers. 每当我运行我的程序时,我会在被要求设置时输入 3,amountOfPlayers但我的输出显示有 51 个玩家。

虽然当我将新Player数组设置为new Player[3]:有用。

有谁知道为什么会这样?

4

3 回答 3

8

问题是您读取 achar并将其解释为整数。字符3有 ASCII 码51

正如PrasadScanner所建议的,使用 a 可能比 aBufferedReader读取输入更容易。

于 2013-08-07T10:14:35.427 回答
3

使用它来读取输入而不是BufferedReader Scanner in = new Scanner(System.in); amountOfPlayers = in.nextInt();

这可能是因为br.read()读取的字符值51是 for 3

usingin.nextInt()将确保将其转换为 int。

于 2013-08-07T10:13:18.650 回答
1

尝试这个,

Integer.parseInt(bufferedReader.readLine());
于 2013-08-07T10:17:48.850 回答