java中将数字字符串转十进制整数最推荐integer.parseint()或integer.valueof(),前者返回int基本类型,后者返回integer对象并缓存-128~127值,均默认十进制解析,非法输入抛numberformatexception。

Java 中将数字字符串转换为十进制整数,最常用、最推荐的方式是使用 Integer.parseInt() 或 Integer.valueOf() 方法。它们默认按十进制解析,无需额外指定进制参数。
使用 Integer.parseInt() —— 返回 int 基本类型
该方法将字符串解析为 int 值,要求字符串必须是非空、仅含数字(可带开头的 '+' 或 '-'),且在 int 范围内(-2147483648 到 2147483647)。
-
正确示例:
Integer.parseInt("123")→ 返回123 -
支持符号:
Integer.parseInt("-456")→ 返回-456;Integer.parseInt("+789")→ 返回789 -
异常情况:空字符串、含字母/空格、超出范围、纯符号等都会抛出
NumberFormatException
使用 Integer.valueOf() —— 返回 Integer 对象
功能与 parseInt 几乎一致,但返回的是 Integer 包装类对象,适用于需要对象引用的场景(如集合、泛型)。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
Integer.valueOf("100")→ 返回new Integer(100)(实际可能复用缓存值) - 对 -128 到 127 范围内的整数,
valueOf会返回缓存对象,更省内存 - 同样会抛出
NumberFormatException处理非法输入
安全转换:避免程序崩溃
生产代码中不建议直接调用上述方法而不处理异常。推荐先校验再转换,或用 try-catch 封装:
- 用正则预判:
str != null && str.matches("-?\d+")(注意:不能识别带前导零的合法数,如 "007";也不校验溢出) - 更稳妥做法:try-catch 包裹 parseInt,并提供默认值或日志
- 示例:
int num = 0;
try {
num = Integer.parseInt(str);
} catch (NumberFormatException e) {
System.err.println("无效的整数字符串: " + str);
}
注意:不要混淆进制参数
Integer.parseInt(String s, int radix) 是重载方法,用于指定进制(如二进制、十六进制)。如果只想转十进制,不要传第二个参数,否则容易误写成 parseInt("101", 10)(冗余)或错写成 parseInt("101", 2)(结果变成 5)。
- ✅ 正确(十进制):
Integer.parseInt("255") - ❌ 不必要:
Integer.parseInt("255", 10) - ⚠️ 错误(当成二进制):
Integer.parseInt("255", 2)→ 抛异常('5' 不是二进制有效字符)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










