当我设置一个对象数组时,例如:
Player[] player = new Player[amountOfPlayers];
我用:
amountOfPlayers = br.read();
获取变量amountOfPlayers
. 每当我运行我的程序时,我会在被要求设置时输入 3,amountOfPlayers
但我的输出显示有 51 个玩家。
虽然当我将新Player
数组设置为new Player[3]
:有用。
有谁知道为什么会这样?
问题是您读取 achar
并将其解释为整数。字符3
有 ASCII 码51
。
正如PrasadScanner
所建议的,使用 a 可能比 aBufferedReader
读取输入更容易。
使用它来读取输入而不是BufferedReader
Scanner in = new Scanner(System.in); amountOfPlayers = in.nextInt();
这可能是因为br.read()
读取的字符值51
是 for 3
。
usingin.nextInt()
将确保将其转换为 int。
尝试这个,
Integer.parseInt(bufferedReader.readLine());