parseInt
parseInt是解析一个string表示的数的方法,即给一个X进制的数,返回它的十进制表示,比如parseInt("Kona", 27) ;
返回结果为411787。
parseInt只接受string或CharSequence的参数,参数为CharSequence的API为
public static int parseInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException``
若不指定进制,则默认进制为10.
valueOf
valueOf和parseInt类似,但是可以接受int作为参数,也可以接受string作为参数,当参数为string时,valueOf底层还是会调用parseInt。
public static Integer valueOf(String s) throws NumberFormatException {
return Integer.valueOf(parseInt(s, 10));
}
当参数为int时,若参数在范围-128~127
之间,则直接从常量池中取数,若不在这个范围内,则新new一个。符合integer的特性。
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
decode
decode与parseInt相似,但decode可以自动解析参数进制,但是不能像parseInt那样自己指定进制。
进制 | 例子 | 结果 |
---|---|---|
十进制 | 10 | 10 |
八进制 | 010 | 8 |
16进制 | 0xf8或#f8 | 248 |