2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > java小工具util系列11:判断字符串是否是数值型 包括负数 0 正整数 浮点数等

java小工具util系列11:判断字符串是否是数值型 包括负数 0 正整数 浮点数等

时间:2021-01-05 00:44:13

相关推荐

java小工具util系列11:判断字符串是否是数值型 包括负数 0 正整数 浮点数等

问题:封装一个方法,判断字符串是否是数值型,要求也能判断负数

答案:

测试方法1:使用mons.lang3.StringUtils

@Testvoid judgeStringType() {String s0 = "123";String s1 = "adb123";String s2 = "-1";String s3 = "0";String s4 = "3.1415926";System.out.println("判断s0是否为数值类型:" + StringUtils.isNumeric(s0)); //trueSystem.out.println("判断s1是否为数值类型:" + StringUtils.isNumeric(s1)); //falseSystem.out.println("判断s2是否为数值类型:" + StringUtils.isNumeric(s2)); //falseSystem.out.println("判断s3是否为数值类型:" + StringUtils.isNumeric(s3)); //trueSystem.out.println("判断s4是否为数值类型:" + StringUtils.isNumeric(s4)); //false}

测试结果表明:使用mons.lang3.StringUtils,判断字符串是否是数值类型,数值只能判断0~正整数,有一个缺陷,负数和浮点数未正确判断,比如-1判断为false

测试方法2:采用正则表达式匹配,优点:除字符串外都能匹配

@Testvoid judgeStringType2() {Pattern pattern = pile("-?\\d+(\\.\\d+)?");String s0 = "123";String s1 = "adb123";String s2 = "-1";String s3 = "0";String s4 = "3.1415926";System.out.println("判断s0是否为数值类型:" + pattern.matcher(s0).matches()); //trueSystem.out.println("判断s1是否为数值类型:" + pattern.matcher(s1).matches()); //falseSystem.out.println("判断s2是否为数值类型:" + pattern.matcher(s2).matches()); //trueSystem.out.println("判断s3是否为数值类型:" + pattern.matcher(s3).matches()); //trueSystem.out.println("判断s4是否为数值类型:" + pattern.matcher(s4).matches()); //true}

测试结果表明:采用正则表达式匹配,优点:除字符串外都能匹配,推荐使用第二种方法。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。