【发布时间】:2012-02-26 06:23:44
【问题描述】:
如果我想在 java 中将字符串转换为 int 你知道我是否有办法检测溢出吗? 我的意思是字符串文字实际上代表一个大于 MAX_INT 的值?
java 文档没有提到它.. 它只是说如果字符串不能被解析为整数,它将通过 FormatException 一个字都没提溢出。。
【问题讨论】:
-
@darkmist 谢谢。知道它会引发异常会有所帮助。我仍然知道什么样的异常等等......你能给我指出描述行为的文档吗?
-
NumberFormatException(parseInt声明为public static int parseInt(String s, int radix) throws NumberFormatException)。顺便说一句,docs.oracle.com/javase/1.4.2/docs/api/java/lang/Integer.html 中有一个样本太长,不适合int。 -
@darkmist 如果发生以下任何一种情况,则会引发 NumberFormatException 类型的异常:(不包含太大的值...)第一个参数为 null 或长度为零的字符串。基数小于 Character.MIN_RADIX 或大于 Character.MAX_RADIX。字符串的任何字符都不是指定基数的数字,除非第一个字符可以是减号'-'('\u002D'),前提是字符串的长度大于1。字符串表示的值是不是 int 类型的值。
-
@darkmist 另外 String.intValue 的行为如何?
标签: java