二元运算符'||'的坏操作数类型

时间:2018-04-23 22:05:55

标签: java

我不确定我在这段代码中做错了什么。当用户以这两种格式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}")) ;
}

2 个答案:

答案 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}"