我的数据如下所示:
fy|cycle|lea|course|section|description|ssn|uniq_stu_id|grade_1|grade_2|grade_3|grade_4|credit|Date
22|7|6003127|420000|4|BIOLOGY|6435|530|D|D|NULL|NULL|NULL|2012
22|7|6003127|420000|4|BIOLOGY|4328|152|NULL|NULL|B|NULL|NULL|2012
22|7|6003127|421000|1|CHEMISTR|429|1872|B|B|NULL|NULL|NULL|2012
22|7|6003127|422000|1|PHYSICS|1178|950|B|A|NULL|C|NULL|2012
我对“grade_1”、“grade_2”、“grade_3”和“grade_4”列感兴趣。我想选择最新的年级。 1,2,3和4是学期,所以在第一行,我想从Grade_2中选择D。同样,从最后一行,我想从 Grade_4 中选择 C。 在我的最终输出中,我只需要一列替换这 4 个成绩列,显示最终或最新成绩以及其他信息列。
我的做法如下:
FileReader fileReader = new FileReader(inputFile);
BufferedReader br = new BufferedReader(fileReader);
while ((line = br.readLine()) != null) {
String[] parts = line.split("\\|");
System.out.println(parts[11].toString());
if (parts[11].toString() != "NULL") {
final_grade = parts[11].toString();
} else if (parts[10].toString() != "NULL") {
final_grade = parts[10].toString();
} else if (parts[9].toString() != "NULL") {
final_grade = parts[9].toString();
} else if (parts[8].toString() != "NULL") {
final_grade = parts[8].toString();
}
else {
final_grade = "N/A";
}
}
使用此代码,我的输出给出所有空值。我无法理解我错在哪里。有人可以帮忙吗?
最佳答案
检查字符串是否相等必须使用 equals()
来完成.
对字符串使用 ==
会比较对象而不是实际值。
关于java - 如何选取不为空的最新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31922968/