Integer.parseInt(String s,int radix)

Integer.parseInt(String s,int radix)返回的结果是一个十进制数

我们是要得到s的十进制数,而radix是表示s当前是多少进制的数

举个例子

parseInt(1010,16)

意思就是:输出16进制数1010在十进制下的数

我们平时用Integer.parseInt("123");默认就调用了int i = Integer.parseInt("123",10);转换过程可以看成如下:

i = 1 * 10*10 + 2 * 10 + 3

int j = Integer.parseInt("123",16)的转换过程可以看成如下:

j = 1 * 16*16 + 2 * 16 + 3;

源码如下:

 
  

public static final int MIN_RADIX = 2;
public static final int MAX_RADIX = 36;
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 || string.isEmpty()) { throw invalidInt(string) ; } char firstChar = string.charAt( 0) ; int firstDigitIndex = (firstChar == '-' || firstChar == '+') ? 1 : 0 ; if (firstDigitIndex == string.length()) { throw invalidInt(string) ; } return parse(string , firstDigitIndex , radix , firstChar == '-') ;}

根据源码可以看出radix的范围是在2——36之间,超出范围会抛异常。

s的长度也不能超出7,否则也会抛异常


你可能感兴趣的:(Integer.parseInt(String s,int radix))