我不确定我在这段代码中做错了什么。当用户以这两种格式XXX-XX-XXXX或XXXXXXXXX中的任何一种提示号码时,我希望此方法返回有效。有谁可以帮助我吗?谢谢!
public class SSNValidator {
public static boolean isValidSSN(String ssn) {
return ssn.matches(("[1-9]\\d{2}-[1-9]\\d{1}-\\d{4}") || ("[1-9]\\d{9}")) ;
}
答案 0 :(得分:1)
您误解了||
的工作原理。这就是你要找的东西:
return ssn.matches("[1-9]\\d{2}-[1-9]\\d{1}-\\d{4}") || ssn.matches("[1-9]\\d{9}");
阅读有关逻辑运算符的基础知识。
答案 1 :(得分:-2)
正则表达式运算符只是一个|,所以你的引用表达式应该是
"[1-9]\\d{2}-[1-9]\\d{1}-\\d{4}") | ("[1-9]\\d{9}"