java利用正则实现判断string是否为数字、整数、小数

通过正则的方法去判断字字符串是否为数(包括整数和小数),本代码没有考虑科学计数法的字符串。

import org.springframework.stereotype.Component;
import java.util.regex.Pattern;

/**
 *  判断string是否为数字、整数、小数(这里没有考虑科学计数法的情况,如5e3,-1E-16)
 */
@Component
public final class StrToNum {

    //判断数字(int + double + float)
    public boolean isNumber(String str) {
        if (str == null || "".equals(str)){
            return false;
        }
        Pattern pattern = Pattern.compile("^(-|\\+)?\\d+(\\.\\d+)?$");
        return pattern.matcher(str).matches();
    }

    //判断整数(int)
    public boolean isInteger(String str) {
        if (null == str || "".equals(str)) {
            return false;
        }
        Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
        return pattern.matcher(str).matches();
    }

    //判断浮点数(double和float)
    public boolean isDouble(String str) {
        if (null == str || "".equals(str)) {
            return false;
        }
        Pattern pattern = Pattern.compile("[+-]?[0-9]+\\.([0-9]+)"); // 之前这里正则表达式错误,现更正
        return pattern.matcher(str).matches();
    }
}

已经验证过代码大部分可用性,测试数据如下:

public static void main(String[] args) {
        String[] strings = {"11111", "22.222", "22.22.22", ".2222", "-1111", "-222.222", "-.9999", "9999.", "-0.0000", "111s222", "222.a11", "090.0"};
        System.out.println("字符串    数字    整数    小数");
        for (String str: strings){
            System.out.println(str +": "+ strToNum.isNumber(str) + " " + strToNum.isInteger(str) + " " + strToNum.isDouble(str));
        }
    }
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值