怎样把字符串转换为数值?
先说出你的答案
定义边界、关键机制、一个反例;P8题再补容量、失败与验证。
查看完整题解
参考回答
直接回答
先确定目标数值类型:整数可用 Integer.parseInt,长整数可用 Long.parseLong,小数可用 Double.parseDouble;需要包装对象时可用对应的 valueOf。Number 是抽象父类,没有一个通用的 Number.parse 方法能替你决定精度、范围和格式。
讲清原理
字符串是文字,数值类型有各自的表示范围。"12" 能解析成 int,"12.5" 则不能直接用 parseInt 解析。金额等要求精确十进制计算的内容,通常应从字符串构造 BigDecimal,而不是先变成 double 再转回来。
输入可能带空白、空值、单位或本地化格式。先验证业务格式,再选择解析器;不要把所有非法输入都悄悄变成 0。浮点解析还可能得到 NaN 或无穷大,业务不允许时需再检查是否为有限值。
例子与易错点
int count = Integer.parseInt("42");
double ratio = Double.parseDouble("0.25");
var price = new java.math.BigDecimal("19.90");
System.out.println(count + ":" + ratio + ":" + price);
// 42:0.25:19.90
parseInt 遇到非法格式或超出 int 范围会抛 NumberFormatException;Double 超范围可能得到 Infinity,不能假定两种解析器的失败方式完全相同。
相关题:第 25 题、第 33 题、第 53 题。
和评分标准对照,你能独立回答到哪一步?
自评会安排下一次复习,不保存你的口述内容。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。