簡體   English   中英

嘗試解析字符串時數字格式異常

[英]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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM