簡體   English   中英

將字符串解析為BigDecimal時出現NumberFormatException

[英]NumberFormatException when parsing a String to 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)

我認為問題出在解析器找到沒有任何文本或值的單元格時的解析方法上。

如果str是一個空字符串( "" )或一個空格( " " ),則您的parsing方法將引發該異常。 您可能需要做一些額外的檢查,例如

if (str == null || str.trim().length() == 0) {
    normalized = "0";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM