2009-09-25 3 views
2

Это для моего друга, у которого проблемы с Java для школы.Использование сканера для ввода ввода не печатается, как ожидалось

Я знаю некоторые программы, но не Java.

Scanner kbReader = new Scanner(System.in); 
System.out.print("Name of item: "); 
String name = kbReader.next(); 
System.out.println("Original price of item: $"); 
double price = kbReader.nextDouble(); 

Выходы:

Name of item: Coat 
Original price of item: $ 

10 

Почему вход для "Первоначальная цена пункта: $" на следующей строке? Я предполагал, что это произошло потому, что я пошел от String до double, но не могу придумать другой способ сделать это?

ответ

12

Если вы используете

System.out.println() 

Java поместит строку после вывода, если вы используете

System.out.print() 

Java не переводом строки после выхода.

+0

спасибо. – user

3

Вы не разместили весь код. Но изменить

System.out.println("Original price of item: $"); 

в

System.out.print("Original price of item: $"); 

и это будет нормально.

1

Это потому, что метод System.out.println() добавляет символ новой строки ко всему, что он распечатывает. Если вы хотите, чтобы запрос на ввод оставался в той же строке, используйте System.out.print() (обратите внимание, что это метод print(), а не println()), который делает , а не. Добавьте новую строку в то, что он отправляет стандарту вне. System.out - это статический объект java.io.PrintStream. Вы можете прочитать Javadocs на нем, чтобы помочь вам: http://java.sun.com/javase/6/docs/api/java/io/PrintStream.html

1

Поскольку вы использовали println вместо печати. «Ln» добавляет новую строку.

Смежные вопросы