我的代碼是:NumberFormatException的解析字符串爲BigDecimal
String sql="insert into L_EC(AMOUNT)values(?)";
pst=con.prepareStatement(sql);
for(int i=0;i<dtm.getRowCount();i++){
BigDecimal nbr= parsing(dtm.getValueAt(i, 1).toString());
prst.setBigDecimal(1, nbr);
prst.addBatch();
}
prst.executeBatch();
信息: 列的類型的Currency
private static BigDecimal parsing(String str) {
String normalized="";
if(str==null){
normalized="0";
}else{
normalized = str.replaceAll("\\s", "").replace(',', '.');
}
return new BigDecimal(normalized);
問題是,當從表中的單元格包含NULL,我得到這個消息:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException
at java.math.BigDecimal.<init>(BigDecimal.java:545)
at java.math.BigDecimal.<init>(BigDecimal.java:739)
at Vista.TCRCG.parse(TCRCG.java:130)
我認爲問題是在同等水平當解析器找到一個沒有任何文本或值的單元格時使用sing方法。
請包括完整的異常堆棧跟蹤 –
我有這個功能,我的代碼: 私有靜態BigDecimal的解析(字符串str){ 字符串標準化=「」; if(str == null){normalized =「0」; } else { normalized = str.replaceAll(「\\ s」,「」).replace(',','。'); } return new BigDecimal(normalized); – Squero27
請勿使用評論,**編輯**您的問題。並用完整的異常消息發佈堆棧跟蹤。 –