Как я могу решить ошибку сканера, когда я нажимаю на ввод - PullRequest
0 голосов
/ 01 декабря 2018
Scanner scan = new Scanner (System.in);
mainMenu = scan.nextLine().charAt(0);

Су каждый раз, когда я нажимаю на кнопку ввода, он "взрывается" и говорит:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.String.charAt(Unknown Source)
    at tESTedit.main(tESTedit.java:50). 

Как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Никогда не пытайтесь получить доступ к индексу из строки или массива, не проверив его длину и не написав более безопасный код, подобный этому,

Scanner scan = new Scanner (System.in);
if (scan.hasNextLine()) {
    String s = scan.nextLine();
    if (s.length() > 0) {
        char mainMenu = s.charAt(0);
        System.out.println(mainMenu);
    }
}
scan.close();
0 голосов
/ 02 декабря 2018

Просто проверьте, что строка содержит содержимое

Scanner scan = new Scanner (System.in);
String input = null;

if (scan.hasNextLine() && !(input = scan.nextLine()).isEmpty()) {
  char mainMenu = input.charAt(0);
  // do something else
} else {
  System.err.println("Nothing was entered");
}

System.out.println("Hello " + input);
...