2015-09-20 128 views
-3

允許我提供更多有關我遇到問題的信息。說我有一些代碼將輸入讀入一行

int a; 
System.out.print(Enter a number "); 
a = keyboard.nextInt 

的第一個語句將

Enter a number 

然後用戶輸入一個號碼,說12,最後的說法是

Enter a number 12 

注意這是怎麼在一條線上。我試圖做同樣的事情,但有一個浮點數,我希望它只顯示小數點後兩位數字。我試過

float money; 
System.out.printf("Enter your money " + "%.2f\n", money); 
money = keyboard.nextFloat(); 

但我得到一個錯誤,說錢還沒有初始化。但是,如果我寫

float money = 0.0f; 
System.out.printf("%.2f\n", money + "Enter your money "); 
money = keyboard.nextFloat(); 

輸出是不是我想要的,那麼它的

Enter your money 0.00 

用戶輸入他們的錢,說1234.567。最終輸出是

Enter your money 0.00 
1234.58 

所以,我怎麼能顯示1234.58使最終輸出

Enter your money 1234.58 
+0

你知道什麼是'\ N'指在一個字符串? –

+1

你想在這一行上做什麼:'輸入你的錢0.00 1234.567'?或'輸入你的錢1234.567'?或'輸入你的錢1234.56'(儘管用戶輸入1234.567)? – RealSkeptic

回答

1

用戶將總是看到用戶輸入的內容。你不能隱藏它。

當第一個提示,用戶看到(_爲光標):

Enter your money _ 

當用戶然後類型的數,並且按下回車,顯示的是:

Enter your money 3.14159 
_ 

正如你可以看到,光標已經在下一行。此時您無法更改第一行。您可以打印另一行,但第一行將始終存在,例如

System.out.printf("You entered %.2f%n", money); 

將給予以下結果:

Enter your money 3.14159 
You entered 3.14 
_ 
0
System.out.print("Enter your money "); 
float money = keyboard.nextFloat(); 
System.out.printf("%.2f", money); 

編輯

你想要一個解釋,所以我會給它給你:D由於java API的狀態System.out.print方法將打印字符串到控制檯而不輸入新行。所以你會得到「輸入你的錢」字符串在屏幕上沒有換行。在用戶輸入keyboard.nextFloat()後,字符串的其餘部分將被放在與System.out.printf("%.2f", money)的字符串中。