有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java JFrame中电子邮件验证的While循环

我尝试在JFrame中使用while循环进行电子邮件验证(电子邮件中必须包含“@”和“com”)。到目前为止,我已经:

while(!emailInput.getText().matches(".*[@com].*")) {
if (emailInput.getText().matches(".*[@com].*")) {
break;
} //from if
}
if((!emailInput.getText().matches(".*[@com].*"))) {
JOptionPane.showMessageDialog(null, "Your email does not seem to be valid. It should be in the form of myemail@myemail.com. Please try again!");
}

当然,while运行将是无限的——一旦我通过输入一封随机电子邮件(比如“test”)来测试程序,条件将始终为false。我不敢在while循环中显示对话框(说电子邮件似乎不对),因为它也会无限次地显示消息

但这有点违反直觉——因为我希望用户继续输入电子邮件,直到他正确输入为止(中途中断)

我试图只使用if语句,但我的if代码似乎只工作一次——所以我指望while循环。然而,即使不使用while循环,有没有办法解决这个问题?我正在使用它进行密码验证,我也遇到了问题。我愿意接受任何建议


共 (1) 个答案

  1. # 1 楼答案

    正如塞巴斯蒂安所建议的,解决方案是使用一个按钮,去掉while循环,只使用if语句。原因是,如果用户点击它,程序就会检查验证——并且每当用户点击按钮时,程序就会检查验证。当用户输入有效电子邮件并最后一次单击按钮时,该过程结束