有人可以向我解释此代码。 在这里,我被设置为1,随后在代码中会被引用
int i = 1;
List data = new ArrayList<>();
String column1 = new String();
String column2 = new String();
String column3 = new String();
String column4 = new String();
String column5 = new String();
String column6 = new String();
String column7 = new String();
String column8 = new String();
String column9 = new String();
String column10 = new String();
String column11 = new String();
String column12 = new String();
在此if语句中,如果i等于1,则执行i ++。 这会一直持续到所有行都被掩盖还是我错过了什么吗? 什么时候去else语句? Rad在瑞典语中排行。
BufferedReader reader = Files.newBufferedReader(Paths.get("winequality-white.csv"), StandardCharsets.ISO_8859_1);
String rad;
while ((rad = reader.readLine()) != null) {
if (i == 1) {
i++;
} else {
String[] radArray = rad.split(";");
column1 += radArray[0] += ",";
column2 += radArray[1] += ",";
column3 += radArray[2] += ",";
column4 += radArray[3] += ",";
column5 += radArray[4] += ",";
column6 += radArray[5] += ",";
column7 += radArray[6] += ",";
column8 += radArray[7] += ",";
column9 += radArray[8] += ",";
column10 += radArray[9] += ",";
column11 += radArray[10] += ",";
column12 += radArray[11] += ",";
//System.out.println(data.toString());
}
}
data.add(column1 += ";");
data.add(column2 += ";");
data.add(column3 += ";");
data.add(column4 += ";");
data.add(column5 += ";");
data.add(column6 += ";");
data.add(column7 += ";");
data.add(column8 += ";");
data.add(column9 += ";");
data.add(column10 += ";");
data.add(column11 += ";");
data.add(column12 += ";");
reader.close();
return data;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
答案 0 :(得分:4)
if
跳过处理文件的第一行,可能是因为它包含标题。 i
最初是1
,因此在第一次循环迭代中,if (i == 1)
为true,并且i++;
确实将i
设置为2
。因此,在下一个循环迭代(以及所有其他循环)中,i == 1
为假,并且采用了else
分支来处理该行。