1. 字符串转整数的核心场景与基础方法
在Java开发中,字符串与整数的相互转换是最基础却最容易出问题的操作之一。我见过太多新手在面试或实际项目中,因为没处理好边界条件而导致系统崩溃。比如用户输入"123abc"时直接转换,或者处理超过Integer最大值的字符串时直接报错。
Java提供了两种最基础的字符串转整数方法:
1.1 Integer.parseInt()方法
这是最直接的转换方式:
java复制String numStr = "2023";
int num = Integer.parseInt(numStr);
但这个方法有三个致命陷阱:
- 字符串包含非数字字符时抛出NumberFormatException
- 空字符串或null会直接报错
- 超过Integer取值范围(-2^31 ~ 2^31-1)时会溢出
1.2 Integer.valueOf()方法
这个方法底层其实调用了parseInt(),但返回的是Integer对象:
java复制Integer numObj = Integer.valueOf("456");
int num = numObj.intValue(); // 拆箱操作
注意:valueOf()方法对-128~127之间的数字有缓存机制,这是面试常考点
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 生产环境中的健壮性处理方案
真实项目不能直接用基础方法,必须考虑各种异常情况。我总结了一套企业级转换工具:
2.1 带默认值的转换方法
java复制public static int toInt(String str, int defaultValue) {
if (str == null || str.trim().isEmpty()) {
return defaultValue;
}
try {
return Integer.parseInt(str.trim());
} catch (NumberFormatException e) {
return defaultValue;
}
}
这个方法的特点:
- 处理null和空字符串
- 自动去除首尾空格
- 转换失败返回
