当我设置一个对象数组时,例如:
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());