Kotlin处理字符串触发NumberFormatException,如何移除逗号及小数部分?
错误原因
运行时抛出java.lang.NumberFormatException的核心原因是待转换的汇率字符串包含千位分隔符逗号、小数点及小数位,toInt()方法仅支持纯数字组成的字符串输入。
修复代码
val usdRate: String = JSONObject(json).getJSONObject("bpi").getJSONObject("USD")["rate"] as String // 先移除千位分隔符逗号,再截取小数点前的整数部分 val pureIntStr = usdRate.replace(",", "").split(".").first() val satosh = pureIntStr.toInt() / 100000000
注意事项
- 如果后续汇率数值超过Int最大值(2147483647),可将
toInt()替换为toLong()避免溢出风险 - 上述逻辑天然适配无小数点的汇率字符串,不会因为接口返回格式变化出现下标越界问题
内容的提问来源于stack exchange,提问作者AnxiousDino
相关产品推荐
相关产品推荐

