2010-11-26 77 views
0

我有一個switch語句充當菜單,在此我試圖讀取用戶輸入。目前我使用的是variable=in.next();,這個工程。然而,它只會讀取一個單詞,並且用戶可能需要輸入更多的信息,所以我嘗試使用編譯的variable=in.nextLine();,但是當我運行該程序時,我從菜單中選擇了我的選擇,並跳過讀入並返回到菜單。Java - nextLine();在一個switch語句中

任何幫助,將不勝感激,謝謝:)

回答

1

只需使用:

name=in.nextLine(); 

String choice = in.nextLine(); 

這應該是在構造函數中,並在runApp的頂部。

這樣,你不會在緩衝區中留下新的行(它將用於例如dp)。

你應該有:

dp=in.nextLine(); 

在你的問題中所述。

1

你要麼必須從用戶輸入剝離換行符\n或承擔它的存在在你的switch語句。

差不多,因爲你決定使用nextLine()用戶輸入到計算機看起來像這樣

f\n 

所以只需相應比較字符串!

-1

開關選擇器只能是整數,簡寫,字符或枚舉。字符串不能用作開關選擇器。

如果我正確地理解了你,你想使用用戶輸入的詞來控制你的流程。如果你有話的預定義列表我建議你使用枚舉:

枚舉字{ 啓動,停止,蜂鳴, }

現在,用戶輸入一個字蜂鳴聲。你可以這樣說:

Words command = Words.valueOf(); 
/// 
switch (command) { 
    case start: /* start something */ break; 
    case stop: /* stop something */ break; 
    case beep: /* beep!!! */ break; 
    default: throw new IllegalArgumentException("Unknown command " + command); 
} 
+0

查看我的評論vic的答案。它不會編譯。 – 2010-11-26 22:05:56

0

好的我覺得我在Java中太無能爲力了,並且提出了我的問題。

當我接受用戶輸入時,只需要1個單詞,我希望它能夠把所有的東西放在基本上,當我使用nextLine時,這只是跳過了閱讀並帶我回到選擇一個選擇。

+0

你是如何得到一個簡單的鏈接到一個保管箱文件? – javamonkey79 2010-11-26 22:09:51

+0

在資源管理器,保存箱中點擊右鍵,複製公共鏈接。 有什麼機會幫助解決問題? :P – 2010-11-26 22:12:26