Мой код: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)
Я думаю, что проблема находится на одном уровне когда парсер находит ячейку без какого-либо текста или значения.
Пожалуйста, включите полную трассировку стека исключений –
меня включить эту функцию в мой код: частных статических BigDecimal синтаксического анализа (String ул) { String, нормализуется = «»; if (str == null) { normalized = "0"; } else { normalized = str.replaceAll ("\\ s", "") .replace (',', '.'); } вернуть новый BigDecimal (нормализованный); – Squero27
Не используйте комментарии, ** редактируйте ** свой вопрос. И опубликуйте stacktrace с полным сообщением об исключении. –