【问题标题】:validate digit in java, error using length [closed]在java中验证数字,使用长度出错[关闭]
【发布时间】:2013-12-28 21:54:42
【问题描述】:

我尝试验证数字并制作此功能。

public int digitCheck(String string)
    {
        int flag=0;

        for(int i=0;i<string.length();i++)
        {
            if(!Character.isDigit(string.charAt(i)))    
                flag++; 
        }       
        return flag;
    }

但总是说for的长度有错误

for(int i=0;i<string.length();i++)

有人知道为什么长度有错误吗?

【问题讨论】:

  • 我假设你的意思是例外?有什么例外?字符串是否以 null 形式传递,因为这是我能想象到的唯一错误,调用 string.length()?

标签: java validation numbers digit


【解决方案1】:

你忘了检查 null,我想你想要一个像这样的 boolean 函数。

public static boolean digitCheck(String string) {
  if (string != null) { // <--- Add This
    for (int i = 0; i < string.length(); i++) {
      if (!Character.isDigit(string.charAt(i)))
        return false;
    }
    return true; // we only got here if there were characters, and they're all digit(s).
  }
  return false; 
}

【讨论】:

    【解决方案2】:

    检查 null 并使用 Java 的 Pattern 类是另一种解决方案。

    这是一个代码示例:

    public static final Pattern DIGIT_PATTERN = java.util.regex.Pattern.compile("[0-9]*");
    
    public boolean digitCheck(String str) {
        if ( str == null ) {
            return true; // Assume Null is valid digit string;
        }
        return DIGIT_PATTERN.matcher(str).matches();
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 2022-12-24
    • 2013-02-06
    • 2019-01-12
    相关资源
    最近更新 更多