验证后必须输入两次(Java)
当提示输入名称时,我尝试验证用户输入,以便只接受字母,但是,当我这样做时,我必须输入两次名称,直到它打印下一行 这是我的代码:验证后必须输入两次(Java),java,loops,validation,Java,Loops,Validation,当提示输入名称时,我尝试验证用户输入,以便只接受字母,但是,当我这样做时,我必须输入两次名称,直到它打印下一行 这是我的代码: System.out.println("Enter First Name"); queueArray[last].setfName(in.next().toUpperCase()); while(!in.next().matches("[a-zA-Z,]+")){ System.out.println("In
System.out.println("Enter First Name");
queueArray[last].setfName(in.next().toUpperCase());
while(!in.next().matches("[a-zA-Z,]+")){
System.out.println("Invalid Input");
System.out.printLn("Enter First Name");
queueArray[last].setfName(in.next().toUpperCase());
}
我不确定是哪部分代码导致了此问题。可能的解决方案:
System.out.println("Enter First Name");
String input = in.next();
queueArray[last].setfName(input.toUpperCase());
while(!input.matches("[a-zA-Z,]+")){
System.out.println("Invalid Input");
System.out.printLn("Enter First Name");
queueArray[last].setfName(in.next().toUpperCase());
}
先将
放入.next()
变量中,然后再检查它是否匹配任何内容。更重要的是,学会在思想上(或在纸上)浏览代码,并在代码运行时可视化它正在做什么。这是一项必要的技能,如果要继续,您需要提高。您可以在while
行中调用next()
一次,然后在setfName
行中再次调用。每次调用next
都会得到新的输入。我建议您阅读@HovercraftFullOfEels谢谢您的建议,我会记住这一点。