我正在阅读csv文件并将其写入Database ussing prepare语句但插入数字列时,我收到此错误
java.lang.NumberFormatException: empty String
我试图通过这种方式处理
if(csvLength > 43 && (null != csvRead[43] && !csvRead[43].trim().equals("\"\""))){
pstmt.setFloat(45,Float.parseFloat((csvRead[43].replac("\"","")).toString()));
}else{
pstmt.setNull(45,Types.INTEGER);
但仍然会出现同样的错误。请帮助
csvRead [43] - “”“”
的值答案 0 :(得分:0)
这不会检查空字符串:
trim().equals("\"\"")
检查值为两个引号的字符串。您需要检查equals("")
答案 1 :(得分:0)
因为!csvRead[43].trim().equals("\"\"")
返回true,所以如果是条件并且尝试解析""
并且您正在获取NumberFormatException,它将进入内部。它应该是!csvRead[43].trim().equals("")
。
另外我想建议,为csvRead[43]
创建一个变量,你正在从数组中读取三次值。这会稍微提高性能。
if(csvLength > 43 && (null != csvRead[43] && !csvRead[43].trim().equals(""))){
pstmt.setFloat(45,Float.parseFloat((csvRead[43].replace("\"\"","0")).toString()));
}else{
pstmt.setNull(45,Types.INTEGER);
}