java中判断字符是不是数字问题?

2024-11-18 18:32:54
推荐回答(5个)
回答(1):

你特别判断0开头的,把0或0x去了,就可以用Integer的parseInt(String s,int radix)的方法了,如先去掉0x,再用Integer.parseInt("AA",10),如果没有异常就是数字了,否则就不是,还有对我以前的答题错误表示抱歉,以前我的parseInt方法的参数记错了。另外欢迎访问我的个人网站:junqing124.vip2.upftp.com

回答(2):

public static boolean isNumberic(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; }

是你写的这个方法存在问题

你是把字符串拆分成字符数依次判断一个字符串里面的数字。
当遇到Character.isDigit(str.charAt(i)) == false 的时候就返回了,肯定是false,只有123 能return true;

-123.23 第一个遇到“-”号,显然,不是数字,返回false
0x123 遇到字母“O”,肯定返回false

“12acb3” 遇到“a”--false
“-aa123” 遇到“-”--false

回答(3):

参考如下代码即可发现:

public class T {
    public static void main(String[] args) {
        System.out.println(isInt("12345"));
        System.out.println(isInt("abc"));
        System.out.println(isInt2("12345"));
        System.out.println(isInt2("abc"));
    }
    public static boolean isInt(String string) {
        return string.matches("\\d+");
    }
    public static boolean isInt2(String string) {
        try {
            Integer.parseInt(string);
            return true;
        } catch (NumberFormatException e) {
            return false;
        }
    }
}

回答(4):

你可以采用一个正则表达示来验证.
System.out.println(("123").matches("[0-9]*"));
.
.
.
这样在你以后的开发当中会更实用一些,希望对你有所帮助!

回答(5):

单个字符
char ch='5';
if(ch>='0'&&ch<='9'){//数字
}