【问题标题】:Checking if characters in a string are digits, but with exceptions检查字符串中的字符是否为数字,但有例外
【发布时间】:2014-04-28 18:40:03
【问题描述】:

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

这是我当前的代码,我只是不确定如何排除 - 的。 (对不起,完全忘记了)

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

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


}

【问题讨论】:

  • 使用像^[1-9\-]$这样的正则表达式 - 如果每个块有一定数量的破折号和/或数字,请相应地修复。
  • @Coffee 一个简单的评论,程序员的生活
  • 如果您尝试此操作并遇到障碍,请返回,显示您的代码,解释什么不起作用,然后收到一些建议。
  • 更新了代码,忘记了。

标签: java


【解决方案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();
}

【讨论】:

    【解决方案2】:
    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();
    }
    

    【讨论】:

      猜你喜欢
      • 2017-11-28
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 2017-10-18
      • 2023-03-31
      • 2022-12-01
      相关资源
      最近更新 更多