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