2012-02-29 82 views
-2

我有一個大於2,147,483,647的字符串,我需要解析它。 Integer.parseInt不會做它們的工作,它會拋出一個異常。在Java中,如何解析比int大小大的字符串

+1

你打算存入什麼?一個「長」?或者一個'BigInteger'? – Mysticial 2012-02-29 00:06:25

+2

然後使用['Long.parseLong'](http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#parseLong%28java.lang.String%29)??? – mre 2012-02-29 00:06:43

+0

該字符串中的數字的最小值和最大值是多少? – ggreiner 2012-02-29 00:15:59

回答

1

還有另一種稱爲Long的類型,它可以存儲數字高達2^63 - 1。嘗試解析使用java.text.NumberFormat的字符串轉換爲長:

NumberFormat format = NumberFormat.getInstance(java.util.Locale.US); 

    Number number = format.parse("2,147,483,647"); 
    Long value = number.longValue(); 
+0

我試過了,得到了一個'NumberFormatException'。 – Sean 2012-02-29 00:13:20

+0

對不起,我誤解了'parseLong'做了什麼,我用不同的解決方案編輯了答案。 – ggreiner 2012-02-29 00:15:19

+0

或者只是使用'Long.parseLong(「2147483648」)'。 – 2012-02-29 00:33:17

0

我假設你去了字符串,因爲INT管不住你的價值。這不是必需的。您可以直接使用BigInteger,它可以處理更大的值。