使用扫描仪输入不按预期打印

时间:2009-09-25 22:28:41

标签: java string double java.util.scanner println

这适用于我的朋友,他在学校遇到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,但想不出另一种方法呢?

4 个答案:

答案 0 :(得分:12)

如果您使用

System.out.println()

如果使用

,Java将在输出后放置换行符
System.out.print()

Java不会在输出后放置换行符。

答案 1 :(得分:3)

您尚未发布整个代码。但是,改变

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

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

没关系。

答案 2 :(得分: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

答案 3 :(得分:1)

因为您使用println而不是print。 'ln'添加了一个新行。