Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中处理空字符串_Java_String_Null - Fatal编程技术网

在java中处理空字符串

在java中处理空字符串,java,string,null,Java,String,Null,我正在读取CSV文件并插入到表中。但当我将completdate设置为null时,我想插入默认日期。我选中了此选项 if(COMPLETEDATE == null){ css.setString(24, "2013-06-12 00:00:00.0"); }else{ css.setString(24, COMPLETEDATE); } 下面是整个函数 public void ImportCSV() { String csvFile = "C:\\seema

我正在读取CSV文件并插入到表中。但当我将completdate设置为null时,我想插入默认日期。我选中了此选项

if(COMPLETEDATE == null){
    css.setString(24, "2013-06-12 00:00:00.0");
}else{
    css.setString(24, COMPLETEDATE);
}      
下面是整个函数

public void ImportCSV() {
    String csvFile = "C:\\seema\\CSV Files\\2013\\August\\15.csv";
    BufferedReader br = null;
    String line = "";
    String cvsSplitBy = ",";
    String PRODLINE,EMPID,EMPFNAME,SHIFT,STATIONID,CURWKDATE,OPCODE,OPDESC,STARTWORKTIME,ENDWORKTIME,PIECECNT,
           BUNDLECNT,PIECERATE,SAM,SKILLLEVEL,DAILYBONUS,NORMALRATE,OVERTIMERATE,WORKDURATION,MONO,DESIGNCODE,
           DESIGNCOLOR,DESIGNSIZE,COMPLETEDATE;

    int i=0;
    try {
    br = new BufferedReader(new FileReader(csvFile));
    while ((line = br.readLine()) != null) {
      try {
        PreparedStatement css = null;
        css= conn.prepareStatement("exec uspInsertEWLProduction ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?");

        String[] country = line.split(",");

        PRODLINE=country[0];
        EMPID=country[1];
        EMPFNAME =country[2];
        SHIFT=country[3];
        STATIONID=country[4];
        CURWKDATE =country[5];
        OPCODE=country[6];
        OPDESC=country[7];
        STARTWORKTIME =country[8];
        ENDWORKTIME=country[9];
        PIECECNT=country[10];
        BUNDLECNT =country[11];
        PIECERATE=country[12];
        SAM=country[13];
        SKILLLEVEL =country[14];
        DAILYBONUS=country[15];
        NORMALRATE=country[16];
        OVERTIMERATE =country[17];
        WORKDURATION=country[18];
        MONO=country[19];
        DESIGNCODE =country[20];
        DESIGNCOLOR=country[21];
        DESIGNSIZE=country[22];
        COMPLETEDATE =country[23];

        if(i!=0) {
           css.setString(1, PRODLINE);    
           css.setString(2, EMPID);
           css.setString(3, EMPFNAME);
           css.setString(4, SHIFT); 
           css.setString(5, STATIONID);
           css.setString(6, CURWKDATE);
           css.setString(7, OPCODE);    
           css.setString(8, OPDESC);
           css.setString(9, STARTWORKTIME);
           css.setString(10, ENDWORKTIME); 
           css.setString(11, PIECECNT);  
           css.setString(12, BUNDLECNT);
           css.setString(13, PIECERATE);
           css.setString(14, SAM);
           css.setString(15, SKILLLEVEL);
           css.setString(16, DAILYBONUS);
           css.setString(17, NORMALRATE);
           css.setString(18, OVERTIMERATE);
           css.setString(19, WORKDURATION);
           css.setString(20, MONO);
           css.setString(21, DESIGNCODE);
           css.setString(22, DESIGNCOLOR);
           css.setString(23, DESIGNSIZE); 

           if(COMPLETEDATE == null) {
              css.setString(24, "2013-06-12 00:00:00.0");
           } else {
              css.setString(24, COMPLETEDATE);
           }
         }
         css.executeUpdate();
       } catch (Exception e) {
         e.printStackTrace();
       }
       i++;
     }
     JOptionPane.showMessageDialog(null, "Data Imported Successfully");
   } catch (FileNotFoundException e) {
     e.printStackTrace();
   } 
} 

问题是,即使copmletedate为null,也永远不会执行else部分。有解决方案吗?

尝试将if语句更改为:

if(COMPLETEDATE.equals("")) 

您可能需要检查null和空字符串。大概是这样的:

            if(COMPLETEDATE != null && !("".equals(COMPLETEDATE.trim)))
            {
                css.setString(24, COMPLETEDATE);

            }
            else
            {
                css.setString(24, "2013-06-12 00:00:00.0");
            }                

您可以使用Apache Commons实用程序检查
null
empty
字符串。顺便问一下,为什么要将日期存储为字符串而不是日期

if (StringUtils.isEmpty(COMPLETEDATE)) {
    // set default date
} else {
    // set COMPLETEDATE
}
使用StringUtils.isBlank()检查空字符串或空字符串


访问

你可以做一件事来比较两件事

if(COMPLETEDATE != null || !("".equals(COMPLETEDATE.trim())))
        {
            css.setString(intlength, xyz);

        }
        else
        {
            css.setString(intlength, "Stringdate");
        }
希望这会有帮助

如果你在循环,那么试试这个

if(country[23] != null && !(country[23].equals(""))){
      // set your date code
}else{
    // set String date
}

如果(null==COMPLETEDATE | |“”.equals(COMPLETEDATE)){//do something}您检查过COMPLETEDATE是null还是仅仅是“”(空字符串)吗?更可能是一个空字符串。是否可以将堆栈跟踪粘贴到此处?如果
COMPLETEDATE
为nullyes,这将导致异常,但如果COMPLETEDATE具有null引用,则try-catch块将处理它。程序要求COMPLETEDATE“不具有null引用”。因此,程序中的if语句,只需要检查空值,这正是我的答案所做的。如果在COMPLETEDATE为空的情况下执行部件,则尝试此操作。@seema haan,但如果COMPLETEDATE为空,则它将存储默认日期na?那么,还有什么例外呢?你能按照你的建议把你的StaceTrace粘贴到这里吗?如果完成日期为空,它应该执行其他部分。我不知道stacktrace是什么。这是我的第一个java程序:)。我是.net程序员,刚开始的java@seema它的okey StackTrace是您在控制台中遇到的异常,请告诉我,我已经更新了它,请尝试that.that.same.no no no任何更改。我尝试使用此方法,但得到以下错误:如果(StringUtils.isEmpty(COMPLETEDATE)){symbol:method isEmpty(String)找不到符号@seema下载并在你的类路径中添加apache commons库。嗨,rohit,你能共享该库的链接吗?我在这个网站上尝试了commons-lang3-3.3.1,并添加了jar文件,但还是一样error@seema这是commons收藏,不是commons-lang。这是链接-