在开发的过程中,我们经常用到需要判断字符串为数字的场景,有很多场景,接下来就介绍下,比如我们判断的是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:如果看底层代码,可以看到实际上判断是是否每个字符都是数字;

所以开发的时候,可以根据需求去判断用哪个方法。