Цикл while для поиска пробела - Java - PullRequest
0 голосов
/ 03 июля 2018

Итак, новый Java-разработчик здесь, провел неделю и решил испачкать руки.

Я пытался создать приложение, в котором пользователь может зарегистрироваться для учетной записи. Я нахожусь в той части, где пользователь должен ввести свое полное имя, и программа должна убедиться, что между именем есть пробел, или же она должна сказать пользователю повторно вводить имя с пробелом.

В настоящее время я попытался настроить цикл while и заставить его повторяться, пока условие indexOf равно <= 0, что означает отсутствие пробела. Однако я не уверен, как заставить его двигаться дальше, как только пользователь успешно введет имя с пробелом. </p>

Мой текущий код выглядит следующим образом:

 public static void companyEmail() {

        System.out.println("+--------------------------------+");
        System.out.println("|   Company Email Registration   |");
        System.out.println("+--------------------------------+");

        Scanner scanner = new Scanner(System.in);
        System.out.print("Please enter your full name: ");
        String input = scanner.nextLine();
        while (input.indexOf(' ') <=0) {
            System.out.println("Please retype your full name with a space: ");
            String secondInput = scanner.nextLine();
            if(secondInput.indexOf(' ') <=0) {
                break;
            }

            System.out.println("Program has worked");


        }
 }

Вся помощь приветствуется.

Спасибо.

1 Ответ

0 голосов
/ 03 июля 2018

Вам нужен вызов input.indexOf(' ') < 0, так как индекс первого символа 0.

И вы не прерывали цикл, когда secondInput содержит пробелы.

Вы можете использовать одну строку для достижения этой цели:

while (input.indexOf(' ') < 0) {
    System.out.println("Please retype your full name with a space: ");
    input = scanner.nextLine();
}
System.out.println("Program has worked");
...