【发布时间】:2014-04-26 17:02:02
【问题描述】:
我正在尝试验证用户输入的电话号码(在我的项目中)。这是我创建的尝试验证它的方法,还给了他们 3 次尝试输入有效格式的方法。但是,我无法让它返回告诉他们重新输入数字的提示,它只是运行它是真还是假。我哪里错了。
public static boolean getPhoneInput(String phone) {
int count =0;
String input,
inputString = phone;
input = JOptionPane.showInputDialog( phone );
String pattern="(\\d-)?(\\d{3}-)?\\d{3}-\\d{4}";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(inputString);
while ((phone != null && input.length() == 0) && (count <2)){
input = JOptionPane.showInputDialog("No input was detected \n" + phone);
count++;}
if (count==2){
JOptionPane.showMessageDialog(null, " Sorry due to errors your order cannot be processed. GOODBYE.");
System.exit(0); {
}
}
return false;}
我尝试使用我找到的示例并为我的程序修改它。如果将字段留空或格式无效,我不确定如何让布尔类型返回消息。
我能够使用 getPhoneInput() 方法让我的代码中的所有内容都像魅力一样工作,但是有没有办法使用布尔值返回 true 或 false 以外的东西。我知道这就是它的目的,但是一旦我有了正确的格式,我希望将数字写入 txt 文件。因为它现在可以正常工作,而不是用用户名记录一个号码,它只是告诉我他们的电话号码符合要求的格式,或者它不符合真假。
【问题讨论】:
-
返回一个字符串而不是布尔值,布尔值只返回真或假(1,0)。
-
我会,但我不确定如何使用模式匹配字符串,我只见过它与布尔值一起使用,我不是 100% 知道如何做到这一点。
-
if(getPhoneInput(phone)){ send msg ok }else{ send msg not ok },您还可以返回一个包含错误的字符串,并使用它来显示您想要的任何内容。
标签: java regex validation