java中string与基本类型转换需显式进行:基本类型转string推荐string.valueof(),string转基本类型需捕获numberformatexception,并注意空值、进制及浮点精度问题。

Java 中 String 是引用类型,基本类型(如 int、double、boolean 等)是值类型,二者不能直接赋值或隐式转换,必须通过显式方法完成相互转换。
基本类型 → String(推荐方式)
这是最常用、最安全的转换方向,有多种简洁写法:
-
使用
String.valueOf():通用、空安全。例如:String.valueOf(123)、String.valueOf(true)、String.valueOf(null)返回字符串"null",不会抛空指针异常。 -
字符串拼接(
+):如"" + 42或5.6 + "",JVM 会自动调用String.valueOf(),但可读性稍弱,不建议用于关键逻辑。 -
对应包装类的
toString():如Integer.toString(100)、Double.toString(3.14),效率略高,但需注意传入参数不能为null(包装类对象才可能为 null)。
String → 基本类型(需谨慎处理异常)
该方向转换可能失败(如字符串格式错误),必须捕获 NumberFormatException:
-
Integer.parseInt("123")→ 返回int;Integer.valueOf("123")→ 返回Integer对象(推荐后者,可利用缓存且语义更清晰)。 -
Double.parseDouble("3.14")、Boolean.parseBoolean("true")(注意:"true"忽略大小写,其余值均返回false)。 - 避免直接用
new Integer("123")(已废弃),也不要依赖new Double(str)(同样不推荐)。
常见陷阱与建议
实际开发中容易忽略的关键点:
-
空或空白字符串:
parseInt("")或parseInt(" ")都会抛异常,转换前建议用str == null || str.trim().isEmpty()判断。 -
进制转换:
Integer.parseInt("1010", 2)可解析二进制,Integer.toHexString(255)生成十六进制字符串。 -
浮点精度:
Double.parseDouble("0.1")结果仍是二进制浮点近似值,业务中涉及金额请用BigDecimal字符串构造器,而非double。
现代写法(Java 8+ 推荐)
结合 Optional 和工具方法提升健壮性:
- 封装安全转换工具:
Optional.ofNullable(str).filter(s -> !s.trim().isEmpty()).map(Integer::parseInt).orElse(-1)。 - 使用 Apache Commons Lang 的
NumberUtils.toInt(str, defaultValue)或StringUtils.defaultString(str)简化空值处理。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











