parsexxx()方法专用于字符串转基本类型数值,失败抛numberformatexception;valueof()用于转包装类对象;数值转字符串用string.valueof()或拼接,不可用parsexxx()。

Java 中,包装类的 parseXxx() 方法(如 Integer.parseInt()、Double.parseDouble())专门用于将符合格式的字符串转为对应的基本类型数值;而字符串转包装类对象则常用 valueOf()。反过来,数值转字符串推荐用 String.valueOf() 或直接字符串拼接,而不是依赖包装类的 toString() 静态方法(它和 parseXxx() 不是对称操作)。
用 parseXxx() 把字符串转成基本类型数值
每个数值型包装类都提供静态的 parseXxx(String s) 方法,成功时返回对应基本类型值,失败时抛出 NumberFormatException。
-
int i = Integer.parseInt("123");→ 得到 int 值 123 -
double d = Double.parseDouble("3.14159");→ 得到 double 值 3.14159 -
long l = Long.parseLong("9223372036854775807");→ 注意范围,超限会抛异常 - 支持进制转换:如
Integer.parseInt("1010", 2)解析二进制字符串,结果为 10
注意空格、前导零和非法字符
这些方法对输入很严格:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 开头或结尾含空格会报错(
Integer.parseInt(" 123 ")❌),需先调用trim() - 纯数字字符串带前导零一般可接受(如
"007"→ 7),但八进制解析需显式指定进制 - 含字母(如
"12a3")、小数点(对parseInt)、科学计数法(对parseInt)都会触发异常 - 空字符串
""或null直接抛NumberFormatException,务必判空处理
把数值转回字符串,别用 parseXxx() —— 它不干这事
parseXxx() 是单向解析方法,**不能用于数值转字符串**。正确方式有:
-
String s = String.valueOf(123);→ 推荐,统一、安全、支持 null(返回 "null") -
String s = Integer.toString(123);→ 也可,但不支持传入 null,且各类型方法名不统一 -
String s = "" + 123;→ 简便但隐式创建 StringBuilder,少量使用无妨 - 避免写
new Integer(123).toString(),既低效又过时(自动装箱已淘汰构造器)
需要包装类对象?优先用 valueOf() 而非 parseXxx()
如果目标是得到 Integer、Double 等对象(而非基本类型),应使用 valueOf():
-
Integer i = Integer.valueOf("123");→ 返回缓存的 Integer 对象(-128~127 范围内) -
Double d = Double.valueOf("3.14");→ 同样返回 Double 实例 -
valueOf()内部其实调用了parseXxx(),再包装一次,所以性能略低于直接 parse,但语义更准确 - 它也抛
NumberFormatException,校验逻辑与parseXxx()一致
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










