[英]Using multiple scanners failed - Java
我的Scanner類有問題。 我有一些方法可以讀取用戶的某些輸入,但是調用第一種方法后,其他方法會崩潰(無法讀取輸入)。 我搜索了解決方案,看起來添加“ scanner.nextLine()”可以解決問題,但沒有解決。
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
獲取任何內容(在main
方法中),因為您已經關閉了System.in
(在getPlayersNames
方法末尾關閉input
時)。
您不應該自己關閉System.in
,因為它會阻止將來嘗試從此流中讀取數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.