使用多个扫描程序失败-Java
我对Scanner类有问题。我有一些方法可以从用户那里读取某些输入,但是在调用第一个方法之后,其他方法崩溃(无法读取输入)。我搜索了解决方案,看起来添加“scanner.nextLine()”可以解决问题,但没有使用多个扫描程序失败-Java,java,input,java.util.scanner,Java,Input,Java.util.scanner,我对Scanner类有问题。我有一些方法可以从用户那里读取某些输入,但是在调用第一个方法之后,其他方法崩溃(无法读取输入)。我搜索了解决方案,看起来添加“scanner.nextLine()”可以解决问题,但没有 public class GameController { private int numberOfPlayers = 2; private Board board = new Board('.'); String players[] = new String[numberOfPl
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]);
}
由于您已关闭
系统,
(当关闭输入时,
,在GetPlayerNames
方法的末尾),因此无法从扫描仪
(在主
方法中)获取任何信息
您不应该关闭
系统。在
您自己,因为它会阻止将来尝试从此流读取数据。您认为scanner.close
有什么作用?因此,如果我理解得很好,我应该在应用程序结束时只关闭一个scanner实例,而不关闭任何其他实例?
Insert player 1's name: John
Insert player 2's name: George
1
0
0
0
0
0