如何把数值字符串解析为 Integer 或 Double?
先说出你的答案
定义边界、关键机制、一个反例;P8题再补容量、失败与验证。
查看完整题解
参考回答
直接回答
需要 Integer、Double 对象时可使用对应的 valueOf(String);需要基本类型时可使用 parseInt、parseDouble。解析前先约定是否允许空白、小数、正负号、科学计数法及特殊浮点值,失败时给调用方明确反馈。
讲清原理
解析不是“看起来像数字就都能转”。Integer.valueOf("12.5") 会失败,因为它需要整数格式;Double.valueOf("1e3") 则能解析科学计数法。NumberFormatException 是格式或范围问题的重要信号,不能被默认值 0 隐藏掉。
浮点解析还接受 NaN、Infinity 等内容,过大的有限字面值也可能变成无穷大。业务如只接受正常金额或比例,解析成功后还需检查有限性与业务区间。涉及用户地区格式时,应选用适合的格式化解析工具。
例子与易错点
Integer count = Integer.valueOf("42".strip());
Double amount = Double.valueOf("1e3");
System.out.println(count); // 42
System.out.println(amount); // 1000.0
System.out.println(Double.isFinite(amount)); // true
valueOf 返回包装对象,不承诺每次都新建一个。解析成包装类型后,再进行运算仍可能发生自动拆箱。
相关题:第 14 题、第 25 题、第 53 题。
和评分标准对照,你能独立回答到哪一步?
自评会安排下一次复习,不保存你的口述内容。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。