好吧所以我有这个字符串ssn,它应该是一个具有正确格式的社会安全号码。我需要检查以确保ssn中没有非数字,除了破折号。我已经创建了一个循环,确保破折号位于正确的位置,但是我不知道如何检查是否有非数字字符而没有破折号弄乱支票。有没有办法可以从这张支票中排除破折号?
继续我目前的代码,我不知道如何排除 - ' s。 (对不起,完全忘了)
ssn是用户输入的字符串对象。
for (int i = 0; i < ssn.length(); i++)
{
if (Character.isDigit(ssn.charAt(i))
}
答案 0 :(得分:1)
例如:
public static boolean isValidSocialSecurityNumber(String s) {
Pattern p = Pattern.compile("^\\d{3}-\\d{2}-\\d{4}$");
Matcher m = p.matcher(s);
return m.matches();
}
答案 1 :(得分:1)
public static boolean isSSN(String SSN){
Pattern p = Pattern.compile
("^[0-9]{3,3}[0-9]{2,2}[0-9]{4,4}$"); //$NON-NLS-1$
Matcher m = p.matcher(SSN);
return m.matches();
}