Java字符串与基本类型转换需用包装类parseXxx()方法(如Integer.parseInt),异常时抛NumberFormatException;基本类型转字符串推荐String.valueOf()或拼接;须判空防null,避免自动拆箱空指针。

Java 中字符串与基本类型之间的转换是日常开发中最基础也最频繁的操作,掌握正确、安全、高效的方式很重要。
字符串转基本类型
Java 提供了每种基本类型对应的包装类,它们都包含静态的 parseXxx() 方法,用于将字符串解析为对应的基本类型值。这些方法在遇到非法格式时会抛出 NumberFormatException,需注意异常处理。
-
int:
Integer.parseInt("123")→ 返回 int 值;Integer.valueOf("123")→ 返回 Integer 对象(推荐用于需要对象的场景) -
double:
Double.parseDouble("3.14")或Double.valueOf("3.14") -
boolean:
Boolean.parseBoolean("true")(注意:非 "true" 的任何字符串均返回 false,不抛异常) -
long / short / byte / float / char:类似,分别使用
Long.parseLong()、Short.parseShort()等
基本类型转字符串
有多种简洁方式,推荐优先使用字符串拼接或 String.valueOf(),它们对 null 安全且性能良好。
- 直接拼接:
"" + 42、"value: " + 3.14—— 简单直观,编译器会自动优化 -
String.valueOf(100)—— 推荐,统一接口,对 null 返回 "null" - 包装类的 toString():
Integer.toString(42)、Double.toString(3.14)—— 适合指定进制或精度控制 - 格式化(需控制格式时):
String.format("%.2f", 3.14159)→ "3.14"
空值与异常处理建议
生产环境中,字符串来源不可靠,必须考虑 null 和空白字符串等边界情况。
立即学习“Java免费学习笔记(深入)”;
- 判空再解析:
if (str != null && !str.trim().isEmpty()) { Integer.parseInt(str.trim()); } - 使用 Apache Commons Lang 的
NumberUtils(如NumberUtils.toInt(str, defaultValue))可简化默认值逻辑 - 避免用
new Integer(str)(已废弃),也不要依赖Integer.valueOf(str)处理非法输入——它同样抛异常
自动装箱/拆箱的注意事项
从 Java 5 起支持自动装箱(如 int → Integer)和拆箱(如 Integer → int),但容易引发空指针异常。
- 错误示例:
Integer num = null; int x = num; // 拆箱时抛 NullPointerException - 安全写法:先判空,或使用
Objects.requireNonNull(num).intValue() - 字符串转包装类后,若需基本类型,确保对象非 null 再拆箱










