#java.util.scanner
#java.util.scanner
Вопрос:
Это мой код, который должен принимать входные данные от пользователя и устанавливать 2 значения int. Функция exit работает корректно, однако, когда входная строка равна, например, «5 2», она устанавливает x равным 5 и выдает исключение java.util.NoSuchElementException в строке y = s2.nextInt(); , даже если существует next int. В примере nextInt () я видел, что целые числа были разделены пробелом, и сканер все равно распознал все целые числа. У меня чего-то не хватает?
String exit = "-1";
Scanner s1 = new Scanner(System.in);
String input = s1.next();
Scanner s2 = new Scanner(input);
if (input.equals(exit))
Sequence.quit();
else {
x = s2.nextInt();
y = s2.nextInt();
}
Ответ №1:
Если вы распечатаете свою переменную ìnput
, вы увидите, что она содержит только «5» — поскольку s1.next()
она будет заканчиваться пробелом.
Что-то вроде этого:
String exit = "-1";
Scanner s1 = new Scanner(System.in);
int x = s1.nextInt();
if (x==-1)
Sequence.quit();
else {
y = s1.nextInt();
}
Комментарии:
1. Я понимаю. Я прокрутил класс Scanner и обнаружил, что изменение input = s2.next(); на input = s2.nextLine(); решило проблему