2014-03-07 79 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(); 

}