欢迎访问宙启技术站
智能推送

Java 函数如何判断字符串是否为数字?

发布时间:2023-06-16 23:55:46

判断字符串是否为数字,通常需要依赖以下几个步骤:

1. 判断字符串为空或为null,如果是,则不是数字;

2. 判断字符串长度是否为1,如果是,判断字符是否在'0'到'9'之间,如果是,则是数字,如果不是,则不是数字;

3. 判断字符串长度大于1,如果第一个字符是'-'或'+',则跳过字符判断,从第2个字符开始判断是否在'0'到'9'之间;

4. 如果第一个字符不是'-'或'+',则从第1个字符开始判断是否在'0'到'9'之间;

5. 如果所有字符都在'0'到'9'之间,则是数字。如果存在不在'0'到'9'之间的字符,则不是数字。

下面通过Java代码来实现以上步骤:

public static boolean isNumeric(String str) {
    if (str == null || str.length() == 0) {
        return false;
    }
    char[] chars = str.toCharArray();
    int length = chars.length;
    int i = 0;
    // 判断第一个字符是否是'-'或'+'
    if (chars[0] == '-' || chars[0] == '+') {
        i = 1;
    }
    // 剩下的字符必须都是数字
    while (i < length) {
        if (chars[i] < '0' || chars[i] > '9') {
            return false;
        }
        i++;
    }
    return true;
}

以上代码中,首先判断了字符串是否为空或为null,如果是,则直接返回false;

然后将字符串转换为字符数组,循环遍历字符数组,判断每个字符是否在'0'到'9'之间,如果遇到不是数字的字符,则直接返回false,否则继续循环判断;

如果全部字符都是数字,则函数返回true。

需要注意的是,以上代码只适用于判断整数字符串是否为数字,对于带有小数点的字符串或科学计数法表示的字符串,则需要进行额外的处理。