我有一个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