我試圖轉換String
到int
。然而,其遭遇錯誤拋出NumberFormatException
。無法將字符串轉換爲INT硒JAVA
java.lang.NumberFormatException: For input string: "07221255201"
代碼:
int value = Integer.valueOf(itemData.get(row).ERP_Customer_Item.trim());
請告知。
我試圖轉換String
到int
。然而,其遭遇錯誤拋出NumberFormatException
。無法將字符串轉換爲INT硒JAVA
java.lang.NumberFormatException: For input string: "07221255201"
代碼:
int value = Integer.valueOf(itemData.get(row).ERP_Customer_Item.trim());
請告知。
7221255201出於原始int
範圍。您應該使用long
類型。 這應該很好地工作:
long value = Long.parseLong(itemData.get(row).ERP_Customer_Item.trim());
而對於其他情況下,儘量選擇保留原始類型範圍記住,當你寫代碼的做法。這就像有一個由不同大小的錘子組成的錘子組合,並在上下文中使用適當的錘子。例如,如果您知道某個特定變量始終位於[-128,127]範圍內,則應該使用short
而不是int
,因爲在後一種情況下會浪費很多位。
你的數目大於Integer.MAX_VALUE(2^31 - 1,或2147483647),因此它不能被解析成一個int。
小心從字符串轉換爲數字。無論創建這個數字是不是使用java ints。
在這種情況下,您可以使用Long.parseLong轉換爲long或Long.valueOf以獲得Long(對象,而不是主數據),但爲什麼您首先從字符串轉換?您正在丟失信息(在這種情況下,前導零可能會或可能不會很重要,這取決於您對數據所做的操作)。轉換有一種方法可以在某處倒退。
HI馬克,你是對的,領先的零不再工作,任何想法如何解決這個問題? @Mark Fisher –
你對這個ID做什麼?它是如何失效的?你是否把它從別的地方轉移過來?爲什麼你需要首先轉換它?你是否將它存儲在某個需要成爲數字的地方?你能用它的原始字符串格式來使用它嗎?我建議你深入思考如何使用這個價值,並且詢問另一個更具體的問題,如果你仍然有問題,也許更新你的原始問題,這樣我們可以提供幫助。目前,這是一個廣泛的解決方案。 –
嗨,任何樣品可以提供?這是我的新手。 THanks –
@DamonNg增加了解決方案。 – Juvanis
其工作..感謝非常非常:d –