StringUtils.isNumeric("")竟然返回true

源代码:

/**
     * <p>Checks if the String contains only unicode digits.
     * A decimal point is not a unicode digit and returns false.</p>
     *
     * <p><code>null</code> will return <code>false</code>.
     * An empty String (length()=0) will return <code>true</code>.</p>
     *
     * <pre>
     * StringUtils.isNumeric(null)   = false
     * StringUtils.isNumeric("")     = true
     * StringUtils.isNumeric("  ")   = false
     * StringUtils.isNumeric("123")  = true
     * StringUtils.isNumeric("12 3") = false
     * StringUtils.isNumeric("ab2c") = false
     * StringUtils.isNumeric("12-3") = false
     * StringUtils.isNumeric("12.3") = false
     * </pre>
     *
     * @param str  the String to check, may be null
     * @return <code>true</code> if only contains digits, and is non-null
     */
    public static boolean isNumeric(String str) {
        if (str == null) {
            return false;
        }
        int sz = str.length();
        for (int i = 0; i < sz; i++) {
            if (Character.isDigit(str.charAt(i)) == false) {
                return false;
            }
        }
        return true;
    }

 

 

https://issues.apache.org/jira/browse/LANG-428

  • Type: Bug Bug
  • Status: Closed
  • Priority: Minor Minor
  • Resolution: Fixed
  • Affects Version/s: 2.3
  • Fix Version/s: 3.0
  • Component/s: lang.*
  • Labels:
    None

3.0版本已经解决该问题

posted @ 2017-01-12 10:53  birkhoff001  阅读(1162)  评论(0编辑  收藏  举报