我有一個switch語句充當菜單,在此我試圖讀取用戶輸入。目前我使用的是variable=in.next();
,這個工程。然而,它只會讀取一個單詞,並且用戶可能需要輸入更多的信息,所以我嘗試使用編譯的variable=in.nextLine();
,但是當我運行該程序時,我從菜單中選擇了我的選擇,並跳過讀入並返回到菜單。Java - nextLine();在一個switch語句中
任何幫助,將不勝感激,謝謝:)
我有一個switch語句充當菜單,在此我試圖讀取用戶輸入。目前我使用的是variable=in.next();
,這個工程。然而,它只會讀取一個單詞,並且用戶可能需要輸入更多的信息,所以我嘗試使用編譯的variable=in.nextLine();
,但是當我運行該程序時,我從菜單中選擇了我的選擇,並跳過讀入並返回到菜單。Java - nextLine();在一個switch語句中
任何幫助,將不勝感激,謝謝:)
只需使用:
name=in.nextLine();
和
String choice = in.nextLine();
這應該是在構造函數中,並在runApp的頂部。
這樣,你不會在緩衝區中留下新的行(它將用於例如dp
)。
你應該有:
dp=in.nextLine();
在你的問題中所述。
你要麼必須從用戶輸入剝離換行符\n
或承擔它的存在在你的switch語句。
差不多,因爲你決定使用nextLine()用戶輸入到計算機看起來像這樣
f\n
所以只需相應比較字符串!
開關選擇器只能是整數,簡寫,字符或枚舉。字符串不能用作開關選擇器。
如果我正確地理解了你,你想使用用戶輸入的詞來控制你的流程。如果你有話的預定義列表我建議你使用枚舉:
枚舉字{ 啓動,停止,蜂鳴, }
現在,用戶輸入一個字蜂鳴聲。你可以這樣說:
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);
}
好的我覺得我在Java中太無能爲力了,並且提出了我的問題。
當我接受用戶輸入時,只需要1個單詞,我希望它能夠把所有的東西放在基本上,當我使用nextLine時,這只是跳過了閱讀並帶我回到選擇一個選擇。
你是如何得到一個簡單的鏈接到一個保管箱文件? – javamonkey79 2010-11-26 22:09:51
在資源管理器,保存箱中點擊右鍵,複製公共鏈接。 有什麼機會幫助解決問題? :P – 2010-11-26 22:12:26
查看我的評論vic的答案。它不會編譯。 – 2010-11-26 22:05:56