我有一个switch语句充当菜单,在此我试图读取用户输入。目前我正在使用variable=in.next();
,这有效。但是它只会读取一个单词,并且用户可能需要输入更多单词,所以我尝试使用编译的variable=in.nextLine();
,但是当我运行程序时,我从菜单中选择我的选择,它会跳过读入并返回菜单。
感谢任何帮助,谢谢:)
答案 0 :(得分:1)
您必须从用户输入中删除换行符\n
,或者假设它在您的switch语句中。
几乎是因为您决定使用nextLine(),用户对计算机的输入将如下所示
f\n
所以只需相应地比较字符串!
答案 1 :(得分:1)
只需使用:
name=in.nextLine();
和
String choice = in.nextLine();
这应该在构造函数中,并在runApp的顶部。
这样,您就不会将新行留在缓冲区中(例如dp
将用于此行。)
你应该:
dp=in.nextLine();
如你的问题所述。
答案 2 :(得分:-1)
切换选择器只能是整数,短整数,字符或枚举。字符串不能用作开关选择器。
如果我理解正确,您希望使用用户输入的字词控制您的流量。如果您有预定义的单词列表,我建议您使用枚举:
enum Words { 开始,停止,发出哔哔声 }
现在用户输入一个哔哔声。你可以说:
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);
}
答案 3 :(得分:-1)
好吧我觉得我在Java上太无能,并且严重地提出了我的问题。
当我接受用户输入时,它只需要1个单词,我希望它能够基本上取出所有内容,当我使用nextLine时,这只是跳过阅读并带我回去选择一个选项。