当我设置一个对象数组时,如:
Player[] player = new Player[amountOfPlayers];
我用:
amountOfPlayers = br.read();
获取变量amountOfPlayers
。每当我运行我的程序时,我会在被要求设置amountOfPlayers
时键入3,但我的输出显示有51个玩家。
虽然我将新的Player
数组设置为:new Player[3]
;它有效。
任何人都知道为什么会这样?
答案 0 :(得分:8)
问题是您阅读char
并将其解释为整数。字符3
具有ASCII代码51
。
根据Prasad的建议,使用Scanner
而非BufferedReader
阅读输入可能更容易。
答案 1 :(得分:3)
用此来读取输入而不是BufferedReader
Scanner in = new Scanner(System.in);
amountOfPlayers = in.nextInt();
这可能是因为br.read()
读取了51
3
的字符值。
使用in.nextInt()
将确保将其转换为int。
答案 2 :(得分:1)
试试这个,
Integer.parseInt(bufferedReader.readLine());