概述
在Java开发中,判断字符串会不会为数字类型是一个常常需要用到的功能,而很多小火伴对此可能不太熟习。本文将分三部份讲授怎么判断字符串会不会为数字、经常使用的判断方式和一些小技能。
怎么判断字符串会不会为数字
判断字符串会不会为数字类型有多种方式,以下是比较经常使用和可靠的方法。
使用正则表达式是比较常见也比较简单的判断方式,可使用Java中的Pattern和Matcher类,具体代码以下:
publicstaticbooleanisNumber(Stringstr){Patternpattern=Pattern.compile([0⑼]);MatcherisNum=pattern.matcher(str);returnisNum.matches();}使用try-catch语句也是一种可靠的方式,具体方法是尝试将字符串转换为数字类型,如果转换成功则为数字,反之则不是数字。示例代码以下:
publicstaticbooleanisNumber(Stringstr){try{Integer.parseInt(str);returntrue;}catch(Exceptione){returnfalse;}}ApacheCommonsLang库提供了isNumeric()方法来判断字符串会不会为数字类型。示例代码以下:
publicstaticbooleanisNumber(Stringstr){returnStringUtils.isNumeric(str);}经常使用的判断方式
除上述介绍的方法外,还有一些其他方式可以判断字符串会不会为数字类型,不过这些方法可能对性能有一定影响,推荐使用上述三种方式。
Java提供了Character.isDigit(char)、Character.isLetter(char)、Character.isLetterOrDigit(char)等方法用于判断字符类型,再通过遍历字符串判断每一个字符会不会都是数字,如果是则为数字类型字符串。示例代码以下:
publicstaticbooleanisNumber(Stringstr){char[]chars=str.toCharArray();for(charc:chars){if(!Character.isDigit(c)){returnfalse;}}returntrue;}通过正则表达式等方式,对字符串进行格式化操作,如果格式化后是数字则为数字类型。代码实现上较为复杂,这里不再详细介绍。
小技能
在实际开发中,为了不一些没必要要的毛病,也能够利用一些小技能来判断字符串会不会为数字。
利用BigDecimal类的构造方法可以判断字符串会不会为数字类型,示例代码以下:
publicstaticbooleanisNumber(Stringstr){try{newBigDecimal(str);returntrue;}catch(Exceptione){returnfalse;}}对数字类型字符串中包括非数字字符的情况,可使用正则表达式过滤掉非数字字符,再使用上述方法进行判断。示例代码以下:
publicstaticbooleanisNumber(Stringstr){if(StringUtils.isBlank(str)){returnfalse;}Stringreg=[^0⑼];return!Pattern.compile(reg).matcher(str).find();}判断字符串会不会为数字类型在Java开发中是一个非常基础的操作。本文介绍了几种经常使用和可靠的判断方式,并分享了一些小技能。需要注意的是,在实际开发中我们还需要注意一些其他的点,如字符串长度、字符串会不会为空等等,以免出现一些没必要要的毛病。
桂.哥.网.络www.guIgege.cn
TOP