Как сделать так, чтобы моя программа не запрашивала ввод дважды?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как сделать так, чтобы моя программа не запрашивала ввод дважды?

Сообщение Anonymous »


Я использую класс Scanner в Java и столкнулся с проблемой, из-за которой моя программа делала что-то вроде этого:

public static void ответ() { System.out.print("\t> "); команда = scan.nextLine(); // Он должен иметь возможность читать всю строку, чтобы иметь возможность захватывать пробелы } public static void main(String[] args) { while (!command.contains("Привет, мир!")) { System.out.println("Привет!!"); отвечать(); } } Но напечатал бы это:

Привет!! > Привет!! (ввод пользователя) Итак, после некоторых исследований я решил изменить свою программу примерно так:

public static void ответ() { сканирование.следующаястрока(); // новый кусок System.out.print("\t> "); команда = scan.nextLine(); } public static void main(String[] args) { while (!command.contains("Привет, мир!")) { System.out.println("Привет!!"); отвечать(); } } Это привело к другой проблеме. Если пользователь испортит ввод, набрав что-то вроде «fjbejwkb» вместо «Hello World!», произойдет следующее:

Привет!! > fjbejwkb (пользователь вводит неверную информацию) Привет!! (ввод пользователя) > (ввод пользователя) Если я избавлюсь от добавленного scan.nextLine(), я вернусь к исходной проблеме «Привет!!» печатается дважды, но если я оставлю его, всякий раз, когда я использую метод answer() после его первого использования, он заставит пользователя ввести две вещи. Хотя первое не прочитано, я уверен, что это может привести к некоторой путанице, которой мне бы хотелось избежать.

Я пробовал использовать println / \n вместо scan.nextLine(), но визуально это мне не нравится:
р>
Привет!! > (ввод пользователя) Я также пробовал command = scan.next() вместо command = scan.nextLine(), но это не фиксирует пробелы - в этом и заключается проблема работаю над тем, что мне нужно.

Вот чего я хочу:

Привет!! > fjbejwkb (пользователь вводит неверную информацию) Привет!! > (ввод пользователя) Когда пользователь вводит неправильные данные, он должен запросить ввод один раз, а затем запросить ввод еще раз.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»