Java prompt + получить строку, содержащую любой пробел (один или несколько)

Мне нужно получить строку из приглашения и juste после того, как мне нужно получить список строк из приглашения. У меня проблема. Когда я получаю свой список, у меня остается только первое слово. Пробую любой другой nextLine() ... но не получается. Я вижу много примеров с двумя словами (один пробел), но я ищу список слов !!

Код Java:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("Enter a name:");
    String name = input.next();
    System.out.println("Enter a name list:");
    String nameList = input.next();
    System.out.println("Enter last name:");
    String lastName = input.next();
    input.close();
    System.out.println(name + " * " + nameList + " ** " + lastName);
}

консольный результат:

Enter a name:
aa
Enter a name list:
bb cc dd
Enter last name:
aa * bb ** cc

1-й ответ - аа + ввод

2-й ответ: bb cc dd + enter

но только после dd + enter программа отобразит Enter last name: aa * bb ** cc и остановится

Лично я бы использовал nextLine для всех запросов, а затем второй Scanner для анализа «списка» значений, но это я - помните, next будет читать следующий токен до следующего пробела, поэтому nameList следует за lastName. означает, что в Scanner все еще есть токены, которые собирает lastName

MadProgrammer 22.03.2018 21:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
41
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

решение.nextLine()но по всем линиям

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("Enter a name:");
    String name = input.nextLine();
    System.out.println("Enter a name list:");
    String nameList = input.nextLine();
    System.out.println("Enter last name:");
    String lastName = input.nextLine();
    input.close();
    System.out.println(name + " * " + nameList + " ** " + lastName);
}

Приставка:

Enter a name:
aa
Enter a name list:
bb cc dd
Enter last name:
ee
aa * bb cc dd ** ee

Да, но вы можете объяснить почему;)?

MadProgrammer 22.03.2018 21:47

Я пробовал использовать next () для простых (1 и 3) и next Line () только для 2

Stéphane GRILLON 22.03.2018 21:50

Другие вопросы по теме