尝试解析字符串时出现数字格式异常
number format exception when trying to parse a string
我想将 Integer.MAX_VALUE
转换为二进制,并希望表示的类型为 int
。我将它传递给 Integer.tobinarystring()
并用 Integer.parseint
包裹起来,但我得到了 numberformatexception.
这是代码
System.out.println(
Integer.parseInt(
Integer.toBinaryString(Integer.MAX_VALUE)
)
);
这里是例外
Exception in thread "main" java.lang.NumberFormatException: For input string: "1111111111111111111111111111111"
Integer.MAX_VALUE
是 2,147,483,647
在二进制中是:
1111111111111111111111111111111
如果我们再次将其视为整数,即 1,111,111,111,111,111,111,111,111,111,111
,您可能会发现它比最大值大得多。
如果您确实需要将其作为 int 来处理,您可能需要研究 BigInteger
。
如果要获取二进制字符串的整数值
1111111111111111111111111111111
您必须使用 parseInt()
的另一个签名,它将 radix
、
作为第二个参数,在这种情况下,二进制字符串的基数是 2
String str = Integer.toBinaryString(Integer.MAX_VALUE);
int number = Integer.parseInt(str, 2);
System.out.println(number);
它将打印:
2147483647
我想将 Integer.MAX_VALUE
转换为二进制,并希望表示的类型为 int
。我将它传递给 Integer.tobinarystring()
并用 Integer.parseint
包裹起来,但我得到了 numberformatexception.
这是代码
System.out.println(
Integer.parseInt(
Integer.toBinaryString(Integer.MAX_VALUE)
)
);
这里是例外
Exception in thread "main" java.lang.NumberFormatException: For input string: "1111111111111111111111111111111"
Integer.MAX_VALUE
是 2,147,483,647
在二进制中是:
1111111111111111111111111111111
如果我们再次将其视为整数,即 1,111,111,111,111,111,111,111,111,111,111
,您可能会发现它比最大值大得多。
如果您确实需要将其作为 int 来处理,您可能需要研究 BigInteger
。
如果要获取二进制字符串的整数值
1111111111111111111111111111111
您必须使用 parseInt()
的另一个签名,它将 radix
、
作为第二个参数,在这种情况下,二进制字符串的基数是 2
String str = Integer.toBinaryString(Integer.MAX_VALUE);
int number = Integer.parseInt(str, 2);
System.out.println(number);
它将打印:
2147483647