2014-03-07 89 views
1

我在下面添加了代碼和錯誤,請正確更改以下代碼。 我得到NumberFormatException,我該如何解決它。如何將字符串轉換爲long?

代碼:

try{ 
String balance1 = childNode.getChildText("Balance1");//For input string: "00000162968518794 " 
System.out.println(balance1); 
long ledgerBalance = Long.valueOf(balance1); 
accountSummaryList.setLedgerBalance(ledgerBalance); 
System.out.println(ledgerBalance); 
}catch(NumberFormatException nfe){ 
nfe.printStackTrace(); 
} 

輸出:

java.lang.NumberFormatException: For input string: "00000162968518794 " 
at java.lang.NumberFormatException.forInputString(Unknown Source) 
at java.lang.Long.parseLong(Unknown Source) 
at java.lang.Long.valueOf(Unknown Source) 
at mbank.eai.adaptor.accountsummary.AccountSummaryAdaptor.getAccountSummaryList(AccountSummaryAdaptor.java:68) 
at mbank.eai.adaptor.accountsummary.AccountSummaryAdaptor.main(AccountSummaryAdaptor.java:108) 
java.lang.NumberFormatException: For input string: "00000162968518794 " 
at java.lang.NumberFormatException.forInputString(Unknown Source) 
at java.lang.Long.parseLong(Unknown Source) 
at java.lang.Long.valueOf(Unknown Source) 
at mbank.eai.adaptor.accountsummary.AccountSummaryAdaptor.getAccountSummaryList(AccountSummaryAdaptor.java:68) 
at mbank.eai.adaptor.accountsummary.AccountSummaryAdaptor.main(AccountSummaryAdaptor.java:108) 
+2

[裁剪](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#trim()),將其轉換爲之前您的字符串'Long'。 –

+0

它應該工作,謝謝... –

回答

4

由於錯誤提示,你必須在最後一個額外的空白。改變這一行:

String balance1 = childNode.getChildText("Balance1"); 

要這樣:

String balance1 = childNode.getChildText("Balance1").trim(); 
6

你輸入字符串包含尾隨空格。先修剪它。

balance1 = balance1.trim();

long ledgerBalance = Long.valueOf(balance1.trim());

4

你輸入的字符串不修剪。例外消息指出您的輸入是

"00000162968518794 " 

在結尾處有一個額外的空白區域。嘗試修剪輸入,如:

long ledgerBalance = Long.parseLong(balance1.trim()); 
1

這很簡單。

Long.parseLong("786") 
0

它的簡單。剛纔看的代碼

try{ 

String balance1 = "0000000162968518794 "; 

System.out.println(balance1); 

long ledgerBalance = Long.parseLong(balance1.trim()); 

System.out.println(ledgerBalance); 

} 
catch(NumberFormatException nfe) 
{ 

    System.out.println("exception"); 
nfe.printStackTrace(); 

}