JAVAutil。java中的扫描仪问题
我的扫描仪怎么了?我也试着不把它放在一个循环中,但它不起作用。我希望用户输入一个选项,然后将服务器与选项一起打印出来
private static String getLogLocation(){
System.out.print("Please pick one (Dev, UAT, Lab, Sandbox): ");
Scanner scan = new Scanner(System.in);
String server = null;
Boolean breaking = true;
String choice = scan.nextLine();
while(scan.hasNext() && breaking){
if(choice.equals("Dev")){
server = "CNNDCPV02465.dcld.nndc.kp.org";
breaking = false;
}
if(choice.equals("UAT")){
server = "CNNDCPV02464.dcld.nndc.kp.org";
breaking = false;
}
if(choice.equals("Lab")){
server = "CNNDCBIPP242.nndc.kp.org";
breaking = false;
}
if(choice.equals("Sandbox")){
server = "CNNDCBIPP241.nndc.kp.org";
breaking = false;
}
}
System.out.println("Server" + server);
return server;
}
# 1 楼答案
代码中几乎没有问题
System.in
,我们无法知道是否有下一个元素,因为此流始终处于打开状态,因此有机会获得新数据,并且方法hasNext
将等待新数据,或者等待关闭此流的信号Scanner
包装System.in
,然后关闭它,这意味着您也将关闭System.in
,一旦关闭,您将无法再次读取它李>所以,不要每次都重新创建扫描仪,而是创建一次并将其传递给您的方法,如
现在,关于循环,您可以创建如下内容: