在开发的过程中,我们经常用到需要判断字符串为数字的场景,有很多场景,接下来就介绍下,比如我们判断的是Integer。
方法1:使用Integer.parseInt。
public class TempMain { public static void main(String[] args) { String temp = "123"; Integer num = Integer.parseInt(temp); } }
这种是最简单的方法,但是需要注意的是:这个方法会抛出异常的,如果temp是null或者temp不是数字,那么会抛出NumberFormatException,所以注意catch。
方法2:使用common包判断,NumberUtils。
这个里面有两个方法,NumberUtils.isNumber
、NumberUtils.isDigits
,下面举几个例子,就了解什么区别了。
public class TempMain { public static void main(String[] args) { String num1 = "111"; String num2 = "0x11"; System.out.println(NumberUtils.isNumber(num1));//true System.out.println(NumberUtils.isDigits(num1));//true System.out.println(NumberUtils.isNumber(num2));//true System.out.println(NumberUtils.isDigits(num2));//false } }
从以上结果可以看出:
- isNumber:判断是否是合法是数字,包括非十进制的数字,代表的是数字的合法性;
- isDigits:如果看底层代码,可以看到实际上判断是是否每个字符都是数字;
所以开发的时候,可以根据需求去判断用哪个方法。