给定 int
的 String
表示,我想检查溢出。
我知道如何使用 java 的内置函数(如 parseInt
)从 int
转换为 String
。
但是,如果 String
太大以至于它可能无法放入 int
中怎么办?
String str = "214748364781";
int res = Integer.parseInt(str);
我尝试检查 String
表示的符号,执行 parseInt
,如果符号不匹配,那么我可以说它确实溢出了 int
环绕,但当我实际运行它时,它抛出了一个 NumberFormat
异常。
NumberFormat
会为任何格式错误的字符串抛出,因此它不能保证溢出。
所以我可以检查输入字符串的格式是否正确(所有数字)然后执行 parseInt
然后如果我得到 NumberFormat
我可以断定错误是由于溢出.
但是,我觉得应该有一种更短的方法来进行这项检查。
最佳答案
将其解析为 Long
,如果它可以将其解析为 Integer
,如果此时抛出异常,则会溢出。
或
将其解析为 Long
并检查它是否大于 Integer.MAX_VALUE
关于java - 给定 int 的字符串表示,检查溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40320159/