什么是Integer.parseInt()源码
Integer.parseInt() 方法的功能
Integer.parseInt() 是 Java 中的一个内置方法,用于将字符串转换为整数类型。它接收一个字符串作为参数,并尝试将该字符串解析成一个整数值。如果成功解析,它将返回对应的整数值;如果解析失败,它将抛出一个 NumberFormatException 异常。
源码解析
Integer.parseInt() 的源码相对比较简单,下面按照不同的步骤来解析它的源码:
步骤一:参数校验
首先,Integer.parseInt() 会对传入的字符串参数进行校验,并判断是否为 null 或空字符串。如果参数为 null 或空字符串,则会直接抛出一个 NumberFormatException 异常。
javapublicstatic∫parseInt(Str∈gs)throwsNumberFormatException{returnparseInt(s,10);}
步骤二:解析字符串
在第一步通过校验后,接下来的步骤就是解析字符串。Integer.parseInt() 方法会根据字符串中的字符逐个进行解析,并计算出最终的整数值。解析字符串的过程中,它会忽略字符串前导和尾随的空格。如果字符串中包含非法字符,则会抛出 NumberFormatException 异常。
`java
public static int parseInt(String s, int radix) throws NumberFormatException {
if (s == null) {
throw new NumberFormatException("null");
}
if (radix < Character.MIN_RADIX) {
throw new NumberFormatException("radix " + radix +
" less than Character.MIN_RADIX");
}
...
}
`
步骤三:根据进制进行计算
在步骤二完成字符串解析后,Integer.parseInt() 方法会根据传入的进制参数 radix 将解析后的字符串转换成对应的整数值。radix 参数表示要解析的字符串的进制,可以是 2 到 36 之间的任意整数。如果 radix 不在这个范围内,则会抛出 NumberFormatException 异常。
代码如下:
`java
public static int parseInt(String s, int radix) throws NumberFormatException {
...
int result = 0;
boolean negative = false;
int i = 0, len = s.length();
int limit = -Integer.MAX_VALUE;
int multmin;
int digit;
if (len > 0) {
char firstChar = s.charAt(0);
if (firstChar < '0') {
if (firstChar == '-') {
negative = true;
limit = Integer.MIN_VALUE;
} else if (firstChar != '+')
throw NumberFormatException.forInputString(s);
} else {
digit = Character.digit(firstChar,radix);
if (digit < 0)
throw NumberFormatException.forInputString(s);
else
result = -digit;
}
multmin = limit / radix;
while (i < len) {
digit = Character.digit(s.charAt(i++),radix);
if (digit < 0)
throw NumberFormatException.forInputString(s);
if (result < multmin)
throw NumberFormatException.forInputString(s);
result *= radix;
if (result < limit + digit)
throw NumberFormatException.forInputString(s);
result -= digit;
}
} else {
throw NumberFormatException.forInputString(s);
}
return negative ? result : -result;
}
`
整个 Integer.parseInt() 方法的源码解析到此结束。通过调用该方法,我们可以将一个字符串转换为整数类型,并进行进制转换,但需要注意输入的字符串必须符合整数格式,否则会抛出 NumberFormatException 异常。
猜您想看
-
如何在Edge浏览器中查看浏览器的Cookie
在Edge浏览...
2023年05月13日 -
PHP类文件的自动加载器用法介绍
PHP类文件的...
2023年07月23日 -
如何在Edge浏览器中启用弹出窗口
在Edge浏览...
2023年05月13日 -
怎么解决ORACLE在修改主键时出现ORA-00955的问题
问题背景:在修...
2023年07月20日 -
如何在 Win8 系统中打开控制面板
如何在 Win...
2023年04月15日 -
Springboot源码中的AbstractAdvisorAutoProxyCreator分析
Abstrac...
2023年05月22日