2009-09-25 26 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 

爲什麼輸入 「原價項目:$」 下一行? 我猜是因爲我從Stringdouble,但不能想用不同的方式來做到這一點?

回答

12

如果使用

System.out.println() 

Java將放一個換行符輸出後,如果您使用

System.out.print() 

Java將不會把換行後輸出。

+0

非常感謝。 – user 2009-09-25 23:02:16

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'增加了一條新的線。