Использование сканера для получения входных данных не печатается должным образом

StackOverflow https://stackoverflow.com/questions/1479837

Вопрос

Это для моего друга, у которого возникли проблемы с 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, но не можете придумать другого способа сделать это?

Это было полезно?

Решение

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

System.out.println()

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

System.out.print()

Java не будет помещать новую строку после выходных данных.

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

Вы опубликовали не весь код целиком.Но, измени

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

Для

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

и все будет хорошо.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top