我正在执行一个相当独特的CSV文件读取,但是有一个独特的方面。如果该行仅在第19列中具有空白单元格值,则可以进入哈希表。如果该行中的任何其他列具有空白单元格,则应将其从哈希图中排除。该表共有22列。有什么方法可以写此if语句而无需写出每个列索引?例如if(piecesOfInfo[0] != "" && piecesOfInfo[1] != ""...)
public HashMap<String,String[]> createHashMap() {
File flightFile = new File("fying.csv");
HashMap<String,String[]> flightsMap = new HashMap<String,String[]>();
try {
Scanner s = new Scanner(flightFile);
while (s.hasNextLine()) {
String info = s.nextLine();
String [] piecesOfInfo = info.split(",");
if(/**piecesOfInfo contains no blanks aside from the 18th column**/){
String flightKey = piecesOfInfo[4]; //Setting the Key
String[] values = Arrays.copyOfRange(piecesOfInfo, 0, piecesOfInfo.length);
flightsMap.put(flightKey, values);
}
}
s.close();
}
catch (FileNotFoundException e)
{
System.out.println("Cannot open: " + flightFile);
}
return flightsMap;
}
问题来源:Stack Overflow
我最终通过在If语句中逐一列出每个列来完成了很长一段路:
public HashMap<String,String[]> createHashMap() {
File flightFile = new File("flights.csv");
HashMap<String,String[]> flightsMap = new HashMap<String,String[]>();
try {
Scanner s = new Scanner(flightFile);
while (s.hasNextLine()) {
String info = s.nextLine();
String [] piecesOfInfo = info.split(",");
if(piecesOfInfo[0] != "" || piecesOfInfo[1] != "" || piecesOfInfo[2] != "" ||
piecesOfInfo[3] != "" || piecesOfInfo[4] != "" || piecesOfInfo[5] != "" ||
piecesOfInfo[6] != "" || piecesOfInfo[7] != "" || piecesOfInfo[8] != "" ||
piecesOfInfo[9] != "" || piecesOfInfo[10] != "" || piecesOfInfo[11] != "" ||
piecesOfInfo[12] != "" || piecesOfInfo[13] != "" || piecesOfInfo[14] != "" ||
piecesOfInfo[15] != "" || piecesOfInfo[16] != "" || piecesOfInfo[17] != "" ||
piecesOfInfo[19] != "" || piecesOfInfo[20] != "" || piecesOfInfo[21] != "") {
String flightKey = piecesOfInfo[4] + "_" + piecesOfInfo[2] + "_" + piecesOfInfo[11]; //Setting the Key
String[] values = Arrays.copyOfRange(piecesOfInfo, 0, piecesOfInfo.length);
flightsMap.put(flightKey, values);
}
}
s.close();
}
catch (FileNotFoundException e)
{
System.out.println("Cannot open: " + flightFile);
}
return flightsMap;
}
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。