【发布时间】:2016-10-29 23:48:19
【问题描述】:
鉴于int 的String 表示,我想检查溢出。
我知道如何使用 java 的内置函数(如 parseInt)从 int 转换 String。
但是如果String 太大以至于它可能不适合int 怎么办?
String str = "214748364781";
int res = Integer.parseInt(str);
我试图检查String 表示的符号,执行parseInt,如果符号不匹配,那么我可以说它确实溢出了,因为int 环绕,但是当我实际运行它时它抛出NumberFormat 异常。
NumberFormat 会针对任何格式错误的字符串抛出,因此不能保证溢出。
所以我可以检查输入字符串的格式是否正确(所有数字),然后执行parseInt,然后如果我得到NumberFormat,我可以断定错误是由于溢出造成的。
但是,我觉得应该有更短的方法来做这个检查。
【问题讨论】: