1
我遇到掃描儀類的問題。我有幾個方法從用戶讀取某些輸入,但是在調用第一個方法之後,其他方法會崩潰(無法讀取輸入)。我搜索瞭解決方案,它看起來像添加「scanner.nextLine()」將解決問題,但它沒有。使用多個掃描儀失敗 - Java
public class GameController {
private int numberOfPlayers = 2;
private Board board = new Board('.');
String players[] = new String[numberOfPlayers];
char playersMarkers[] = new char[numberOfPlayers];
public void getPlayersNames() {
Scanner input = new Scanner(System.in);
for (int i = 0; i < players.length; i++) {
System.out.print("Insert player " + (i + 1) + "'s name: ");
players[i] = input.nextLine();
}
input.nextLine(); // <- this one was suppose to solve the problem
input.close();
}
public static void main(String[] args) {
GameController gc = new GameController();
gc.getPlayersNames();
Scanner scanner = new Scanner(System.in);
int array[] = new int[5];
for (int i = 0; i < array.length; i++) {
if (scanner.hasNext()) {
array[i] = scanner.nextInt();
}
}
scanner.close();
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
輸出:
Insert player 1's name: John
Insert player 2's name: George
1
0
0
0
0
0
你認爲'scanner.close'有什麼用? – Pshemo