2013-11-25 2 views
2

Я хочу прочитать полное имя из консоли с помощью java.util.Scanner() и присвоить это значение строке.Прочитайте несколько строк слов с помощью java.util.Scanner()

например;

Тип «Джон Смит» в консоли. Хит возврата и Строка s = "Джон Смит";

Я пробовал написать метод readString для этого, но его замыкание было заблокировано. Кто-нибудь знает о разрешении?

часть моего кода.

System.out.println("Name: "); 
String name = readString(); 

и мой разбитый метод.

private String readString() 
{ 
    String s =""; 
    while(scanner.hasNext()) 
    s += scanner.next(); 
    return s; 
} 
+0

Думаю, вы неправильно набранный, но это должно быть 'scanner.hasNext () ' –

+0

Это опечатка, иначе его программа не будет c ompile. – Maroun

+0

Типичный фиксированный. Благодарю. –

ответ

3

Используйте nextLine() метод вместо next()

ли как этот

private String readString() 
{ 
    Scanner scanner = new Scanner(System.in); 
    return scanner.nextLine(); 
} 
+0

, имеющий метод 'readString()', является немного избыточным, поскольку 'scanner.nextLine();' - это только одна строка, вам не кажется? – Sionnach733

+1

@ Sionnach733 спасибо за ваше предложение, и я согласен с этим, но я не хочу путать OP – Prabhakaran

+0

Я использовал один экземпляр сканера для чтения в нескольких строках с консоли. Использование scanner.nextLine() возвращало пустую строку для первой строки, а затем корректно работало потом. Решение проблемы разрешило проблему. Создайте новый экземпляр для каждого прочитанного, он функционирует правильно. Спасибо всем за вашу помощь. –

1

Это может помочь вам

public static void main(String[] args) { 
    System.out.println("Name: "+getInput()); 
} 

private static String getInput() { 
    Scanner scanner = new Scanner(System.in); 
    return scanner.nextLine(); 
} 
Смежные вопросы