读取和写入CSV文件时出现空字符串错误

时间:2014-06-19 12:48:45

标签: java csv

我正在阅读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] - “”“”

的值

2 个答案:

答案 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);
}