@vixxxen

Как повторно читать из Консоли с помощью Scanner?

Есть код:
public static void inp(double[] mas) {
Scanner scanner = new Scanner(System.in);
//String input = scanner.useDelimiter("\\A").next();
double x,y,z;
System.out.print("Введите Координату x: ");
if (scanner.hasNextDouble()) {
x = scanner.nextDouble();
mas[0] = x;
} else {
System.out.println("Некорректный ввод");
return;
}
System.out.print("Введите Координату y: ");
if (scanner.hasNextDouble()) {
y = scanner.nextDouble();
mas[1] = y;
} else {
System.out.println("Некорректный ввод");
return;
}
System.out.print("Введите Координату z: ");
if (scanner.hasNextDouble()) {
z = scanner.nextDouble();
mas[2] = z;
} else {
System.out.println("Некорректный ввод");
return;
}
System.out.println("Создана точка с координатами ("+ x + ";" + y + ";" + z +")");
scanner.close();
}
Он корректно работает, когда я использую метод в первый раз. Когда вызываю его повторно, в консоль выводится "Некорректный ввод", хотя ничего вообще не вводилось. Правильно ли я понимаю, что это из-за того что scanner начинает читать с самого начала вывода в консоли? Как можно решить эту проблему?
  • Вопрос задан
  • 617 просмотров
Решения вопроса 1
@fapsi
Безработный
Недолгий поиск показал(раз и два), что scanner.close() закрывает и System.in, который повторно не открывается. Без scanner.close() всё работает.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Яндекс Москва
от 180 000 до 350 000 ₽
14 сент. 2024, в 16:27
50000 руб./за проект
14 сент. 2024, в 16:05
1200 руб./за проект
14 сент. 2024, в 15:55
300000 руб./за проект