使用多个扫描程序失败-Java

使用多个扫描程序失败-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

我对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]);
    }

由于您已关闭
系统,
(当关闭
输入时,
,在
GetPlayerNames
方法的末尾),因此无法从
扫描仪
(在
方法中)获取任何信息


您不应该关闭
系统。在
您自己,因为它会阻止将来尝试从此流读取数据。

您认为
scanner.close
有什么作用?因此,如果我理解得很好,我应该在应用程序结束时只关闭一个scanner实例,而不关闭任何其他实例?
Insert player 1's name: John
Insert player 2's name: George
1
0
0
0
0
0