2013-08-07 65 views
1

的對象陣列,例如:使用變量當我設置對象數組設置在Java

Player[] player = new Player[amountOfPlayers]; 

我使用:

amountOfPlayers = br.read(); 

爲了獲得可變amountOfPlayers。每當我運行我的程序時,我會輸入3,當被要求設置amountOfPlayers,但我的輸出說有51個玩家。

雖然當我將新的Player數組設置爲:new Player[3];有用。

任何人都知道這是爲什麼?

+1

你能後的實際完整的代碼,因爲它是很難猜測這到底是怎麼回事呢? – bjedrzejewski

+1

你能解釋一下嗎?這裏的球員是什麼? –

回答

8

問題是你讀了一個char並將其解釋爲一個整數。字符3有ASCII碼51

Prasad所示,使用ScannerBufferedReader讀取輸入可能更容易。

+0

感謝提及:) upvote爲單詞ASCII,我忘了提及。 –

+0

是的,感謝排序 – Ron

3

用此讀取輸入而不是BufferedReader Scanner in = new Scanner(System.in); amountOfPlayers = in.nextInt();

這可能是因爲br.read()讀取的字符值是51對於3。使用in.nextInt()將確保它被轉換爲int。

+0

我可以知道downvote的原因嗎? –

1

試試這個,

Integer.parseInt(bufferedReader.readLine());