如何跳过字符串数组中的第一个元素?

How do I skip the first element from a String Array?

如何跳过字符串数组的第一个元素?

删除 header 行的最简单方法是在进入 while 循环之前阅读它。

String filePath = path;
FileReader fileReader = new FileReader(filePath);
                
BufferedReader reader = new BufferedReader(fileReader);
String headers = reader.readLine(); //This removes the first line from the BufferedReader
            
while ((line = reader.readLine()) != null) {
      String[] attributes = line.split(";");
      Beruf beruf = createBeruf(attributes);
      berufe.add(beruf);
 }
reader.close();

如果您使用 java 8 或更高版本并且被允许使用流,您还可以使用 Files class

lines 方法
       Files.lines(Paths.get(filePath))
                .skip(1) // skipping the headers
                .map(line -> line.split(";"))
                .map(attributes -> createBeruf(attributes))
                .forEach(beruf -> berufe.add(beruf));

另一种快速方法是通过如下标志控制行读取:

public List<Beruf> fileRead(String filePath) throws IOException {
    List<Beruf> berufe = new ArrayList<Beruf>();
    String line = "";
    try {
        FileReader fileReader = new FileReader(filePath);
        BufferedReader reader = new BufferedReader(fileReader);
        Boolean firstLine = Boolean.TRUE;
        while ((line = reader.readLine()) != null) {
            if(firstLine) {
                firstLine = Boolean.FALSE;
                continue;
            }
            String[] attributes = line.split(";");
            Beruf beruf = createBeruf(attributes);
            berufe.add(beruf);
        }
        reader.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    return berufe;
}