有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在使用prepare语句读取csv文件并将其写入数据库,但在插入数字列时,我遇到了此错误

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) 个答案

  1. # 1 楼答案

    这不会检查空字符串:

    trim().equals("\"\"")
    

    检查值为两个引号的字符串。你需要检查equals("")

  2. # 2 楼答案

    因为!csvRead[43].trim().equals("\"\"")返回true,它将进入if条件并尝试解析"",您将获得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);
    }