我有扫描仪询问一些偏好。它创建一个介于0和3之间的int
变量choice
。然后我执行以下操作:
String location;
switch(choice){
case 0:
System.out.println("Please type the zip codes you would like to search in a comma separated list");
location = input.nextLine();
break;
case 1:
System.out.println("Please type the street names you would like to search in a comma separated list");
location = input.nextLine().toUpperCase();
break;
case 2:
System.out.println("Please type the boroughs you would like to search in a comma separated list");
location = input.nextLine().toUpperCase();
break;
default:
location = "none";
break;
}
String locations[] = location.split("\\s*,\\s*");
现在对我来说这看起来非常好,但是当选项设置为0,1或2时,它将打印正确的行,但跳过用户必须输入内容的部分(看起来像location = ...的行)
这意味着它不会给用户输入任何东西的机会,因此locations
成为一个空白列表。为什么会发生这种情况,我该如何解决?
您可能在最后一次输入后读取换行符,而不是真正的下一行。尝试:
int choice = input.nextInt();
input.nextLine(); // <--- Eat it here!
String location;
switch(choice){
case 0:
Syst...
nextInt()
调用,你提示选择,不会结束这一行。因此,在nextLine()
之后第一次调用nextInt()
将返回一个空字符串。要解决这个问题,请在整数后吃空行,然后继续。
我遇到了和你一样的问题。尝试:
case 'f' :
System.out.println("Enter a word or phrase to be found:");
scnr.nextLine();
String phrase = scnr.nextLine(); //
在切换之前读取nextLine。
System.out.print("Digite um número ente 1 e 9: ");
int opc = read.nextInt();
read.nextLine();
switch(opc) {
并使用nextLine()读取您的值
case 6:
String[] procurados = read.nextLine().split(" ");