2015-05-14 98 views
-9
long converted = Long.valueOf(input); 

輸入是String對象。爲什麼我在轉換此對象時遇到NumberFormatException

我想將一個數字的字符串值轉換爲long

我假設要轉換一個字符串對象,我需要使用.valueOf來返回一個Long對象。

是因爲我將結果存儲在原始變量中嗎?

謝謝你的幫助。

+0

你得到這個異常,因爲輸入不是一個有效的長。 – manouti

+0

輸入包含什麼內容?什麼是異常的確切消息? – Eran

+0

嘗試打印輸入內的字符串。並看看它是否是一個有效的數字 – Saif

回答

2

如果您沒有提供有效的長輸入,則會引發NumberFormatException。請看下圖:

long converted = Long.valueOf("3"); 
    System.out.println(converted); 

打印

try{ 
    long converted = Long.valueOf("TEST"); 
    System.out.println(converted); 
} 
catch(NumberFormatException e){ 
    System.out.println("Your input is wrong.."); 
} 

此拋出NumberFormatException的,這是因爲沒有一個有效的數字。並打印「你輸入錯誤。」

0

學習使用JavaDoc

public static Long valueOf(String s) throws NumberFormatException

返回一個Long對象持有指定String的價值。該參數被解釋爲表示一個帶符號的十進制數long,就好像參數被賦予了parseLong(java.lang.String)方法一樣。結果是表示由字符串指定的整數值的一個Long對象。 換句話說,此方法返回一個Long對象等於的值:

new Long(Long.parseLong(s))

參數: s - 要被解析的字符串。

返回: a Long持有由字符串參數表示的值的對象。如果字符串不能被解析爲long

相關問題