2010-11-26 74 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