Как с помощью Scanner считывать строку полностью, с учётом пробелов?
У меня есть такой код:
System.out.print("Input a Dream: ");
String dream_input = input.next();
System.out.print("Input a Status: ");
String s_status_input = input.next();
Он считывает только слово, до первого пробела. Его естественная функция. Но мне надо записать строку слов целиком. Везде предлагается метод использования nextLine(), но есть одно НО:
При его использовании, при отображении в консоле вместо первой фразы "
"Input a Dream:"
" отображается сразу всё:
"Input a Dream: Input a Status: "
после чего можно заполнить только одну переменную - s_status_input.
Как мне написать так, чтобы я смог ввести две фразы раздельно и каждая записалась в нужную переменную?
Ответы (3 шт):
Попробуйте ввести
"Input a Dream:\nInput a Status: "
Это должно сработать, в случае
System.out.print("Input a Dream: ");
String dream_input = input.nextLine();
System.out.print("Input a Status: ");
String s_status_input = input.nextLine();
)))
System.out.print("Input a Dream: \n");
String dream_input = input.next();
System.out.print("Input a Status: ");
String s_status_input = input.next();
Это странно, ваш код рабочий и работает так, как вы и задумывали, причём без nextLine()
Попробуйте скомпилировать этот класс:
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(new InputStreamReader(System.in));
System.out.print("Input a Dream: ");
String dream_input = scanner.next();
System.out.print("Input a Status: ");
String s_status_input = scanner.next();
System.out.println(dream_input);
System.out.println(s_status_input);
}
}
Консоль:
Input a Dream: dream
Input a Status: status
dream
stastus
На онлайн компиляторе onlinegdb, о котором вы говорили код тоже правильно работает