gpt4 book ai didi

java - 将 String 解析为 BigDecimal 时出现 NumberFormatException

转载 作者:行者123 更新时间:2023-12-01 09:21:46 34 4
gpt4 key购买 nike

我的代码是:

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();

信息:列的类型为货币

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";

关于java - 将 String 解析为 BigDecimal 时出现 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40129029/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com