在java中处理空字符串
我正在读取CSV文件并插入到表中。但当我将completdate设置为null时,我想插入默认日期。我选中了此选项在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
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。这是链接-