(String s,int radix)返回的结果是一个十进制数
我们是要得到s的十进制数,而radix是表示s当前是多少进制的数
举个例子
parseInt(1010,16)
意思就是:输出16进制数1010在十进制下的数
我们平时用("123");默认就调用了int i = ("123",10);转换过程可以看成如下:
i = 1 * 10*10 + 2 * 10 + 3
int j = ("123",16)的转换过程可以看成如下:
j = 1 * 16*16 + 2 * 16 + 3;
源码如下:
public static final int MIN_RADIX = 2;public static int parseInt(String string, int radix) throws NumberFormatException { if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX) { throw new NumberFormatException("Invalid radix: " + radix); } if (string == null || ()) { throw invalidInt(string); } char firstChar = (0); int firstDigitIndex = (firstChar == '-' || firstChar == '+') ? 1 : 0; if (firstDigitIndex == ()) { throw invalidInt(string); } return parse(string, firstDigitIndex, radix, firstChar == '-');}public static final int MAX_RADIX = 36;
根据源码可以看出radix的范围是在2——36之间,超出范围会抛异常。
s的长度也不能超出7,否则也会抛异常