【发布时间】:2018-04-07 23:23:17
【问题描述】:
当提示输入名称时,我正在尝试验证用户输入,以便只接受字母,但是,当我这样做时,我必须输入两次名称,直到它打印下一行。
这是我的代码:
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());
}
我不确定是代码的哪一部分导致了这个问题。
【问题讨论】:
-
先将
in.next()放入变量中,然后再检查它是否匹配任何内容。更重要的是,学会在头脑中(或在纸上)浏览您的代码,并在运行时可视化它正在做什么。这是一项必要的技能,如果你要进步,你需要提高。 -
您在
while行中调用next()一次,在setfName行中再次调用。每次调用next都会获得新的输入。 -
@HovercraftFullOfEels 感谢您的建议,我会记住这一点。
标签: java loops validation