Java 如何将CSV文件读取到HashMap中,仅用于不带空格的行
我正在执行一个相当独特的CSV文件读取,但有一个独特的方面。如果该行只有第19列中的空白单元格值,则可以进入hashmap。如果行中的任何其他列有空白单元格,则应将其从hashmap中排除。该表共有22列。有没有办法在不写出每一列索引的情况下写出这个Java 如何将CSV文件读取到HashMap中,仅用于不带空格的行,java,hashmap,Java,Hashmap,我正在执行一个相当独特的CSV文件读取,但有一个独特的方面。如果该行只有第19列中的空白单元格值,则可以进入hashmap。如果行中的任何其他列有空白单元格,则应将其从hashmap中排除。该表共有22列。有没有办法在不写出每一列索引的情况下写出这个if语句?例如if(piecesOfInfo[0]!=”&&piecesOfInfo[1]!=”…) public HashMap createHashMap(){ File flightFile=新文件(“fiting.csv”); HashMap
if
语句?例如if(piecesOfInfo[0]!=”&&piecesOfInfo[1]!=”…)
public HashMap createHashMap(){
File flightFile=新文件(“fiting.csv”);
HashMap flightsMap=新HashMap();
试一试{
扫描仪s=新扫描仪(flightFile);
而(s.hasNextLine()){
String info=s.nextLine();
字符串[]piecesOfInfo=info.split(“,”);
如果(/**piecesOfInfo除第18列**/外不包含空格){
String flightKey=piecesOfInfo[4];//设置键
String[]value=Arrays.copyOfRange(piecesOfInfo,0,piecesOfInfo.length);
flightsMap.put(flightKey,值);
}
}
s、 close();
}
catch(filenotfounde异常)
{
System.out.println(“无法打开:+flightFile”);
}
回程飞行图;
}
这将有助于:
List infoList=Arrays.asList(piecesOfInfo);
如果(!infoList.contains(“”)| |(infoList.indexOf(“”==18&&infoList.lastIndexOf(“”==18)){
//非空工件信息期望位置19
}
最后,我在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;
}
public HashMap createHashMap(){
文件flightFile=新文件(“flights.csv”);
HashMap flightsMap=新HashMap();
试一试{
扫描仪s=新扫描仪(flightFile);
而(s.hasNextLine()){
String info=s.nextLine();
字符串[]piecesOfInfo=info.split(“,”);
如果(piecesOfInfo[0]!=“”| | piecesOfInfo[1]!=“”| | piecesOfInfo[2]!=“”| |
计件信息[3]!=“计件信息[4]!=“计件信息[5]!”
计件信息[6]!=“计件信息[7]!=“计件信息[8]!”
计件信息[9]!=“计件信息[10]!=“计件信息[11]!”
计件信息[12]!=“计件信息[13]!=“计件信息[14]!”
计件信息[15]!=“计件信息[16]!=“计件信息[17]!”
计件信息[19]!=“| |计件信息[20]!=”| |计件信息[21]!=”){
字符串flightKey=piecesOfInfo[4]+“”+piecesOfInfo[2]+“”+piecesOfInfo[11];//设置键
String[]value=Arrays.copyOfRange(piecesOfInfo,0,piecesOfInfo.length);
flightsMap.put(flightKey,值);
}
}
s、 close();
}
catch(filenotfounde异常)
{
System.out.println(“无法打开:+flightFile”);
}
回程飞行图;
}
您可以在所有索引上使用循环。@code学徒我将对此进行研究now@FinDev你试过我的答案了吗?
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;
}