用于检查String是否为有效数字的逻辑

时间:2013-08-06 11:13:05

标签: java

我使用下面的逻辑来检查收回的字符串是否是有效数字

package com;


public class Test {
    public static void main(String args[]) {
        String str = "122";
        boolean b = isNumb(str);
        System.out.println(b);
    }

    public static boolean isNumb(String str) {
        String s = str;
        for (int i = 0; i < s.length(); i++) {
            if (!Character.isDigit(s.charAt(i)))
                return false;
        }
        return true;
    }

}

我将在一个高度多线程的环境中使用它,一次可以有800到900个并发用户,如果这个代码有任何循环漏洞,请告诉我吗?

请分享您的观点

提前致谢

4 个答案:

答案 0 :(得分:6)

我会使用正则表达式:

public static boolean isNumb(String str) {
    return str.matches("\\d+");
}

要为负数返回true,请添加可选的前导短划线:

return str.matches("-?\\d+");

答案 1 :(得分:2)

有更好的方法可以检查字符串是否为数字,例如使用正则表达式。

s.matches("^-?\\d+(\\.\\d)?$")

将轻松获取字符串是否为数字,其中s是您的字符串。

答案 2 :(得分:2)

用于验证给定的字符串是否为有效数字(不仅仅是整数):

boolean b = str.matches("^[+-]?(?=.)\\d*(\\.\\d+)?$");

答案 3 :(得分:2)

我只需执行以下操作来检查字符串是否为数字:

try {
    final Integer i = Integer.parseInt("Your String");
} catch(final NumberFormatException nfe) {
    //String is no number
}