检查字符串中的字符是否为数字,但有异常

时间:2014-04-28 18:40:03

标签: java

好吧所以我有这个字符串ssn,它应该是一个具有正确格式的社会安全号码。我需要检查以确保ssn中没有非数字,除了破折号。我已经创建了一个循环,确保破折号位于正确的位置,但是我不知道如何检查是否有非数字字符而没有破折号弄乱支票。有没有办法可以从这张支票中排除破折号?

继续我目前的代码,我不知道如何排除 - ' s。 (对不起,完全忘了)

ssn是用户输入的字符串对象。

for (int i = 0; i < ssn.length(); i++) 
  {
     if (Character.isDigit(ssn.charAt(i)) 


}

2 个答案:

答案 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();
}