Самый простой способ - это сначала создать класс, который будет хранить данные из вашего файла, при условии, что ваши строки сохраняют тот же формат
public class MyClass {
private Integer column1;
private String column2;
private Integer column3;
private Integer column4;
private Integer column5;
public MyClass(String data) {
String[] cols = data.split("-");
if (cols.length != 5) return;
column1 = Integer.parseInt(cols[0]);
column2 = cols[1];
column3 = Integer.parseInt(cols[2]);
column4 = Integer.parseInt(cols[3]);
column5 = Integer.parseInt(cols[4]);
}
public synchronized final Integer getColumn1() {
return column1;
}
public synchronized final String getColumn2() {
return column2;
}
public synchronized final Integer getColumn3() {
return column3;
}
public synchronized final Integer getColumn4() {
return column4;
}
public synchronized final Integer getColumn5() {
return column5;
}
@Override
public String toString() {
return String.format("%d-%s-%d-%d-%d", column1, column2, column3, column4, column5);
}
}
Далее вы можете получить список ваших элементов, таких как:
public static List<MyClass> getLerRanking() throws IOException {
List<MyClass> items = Files.readAllLines(Paths.get("jogadores.txt"))
.stream()
.filter(line -> !line.trim().isEmpty())
.map(data -> new MyClass(data.trim()))
.filter(data -> data.getColumn4() != null)
.sorted((o1, o2) -> o2.getColumn4().compareTo(o1.getColumn4()))
.collect(Collectors.toList());
return items;
}
Это прочитает весь файл, отфильтрует все пустые строки, затем проанализирует данные и преобразует их в MyClass
.
Затем он убедится, что column4 не является нулем в преобразованных объектах.
Наконец, будет произведена обратная сортировка объектов на основе значения в столбце 4 и создан список этих элементов.
Чтобы напечатать результаты, вы можете сделать что-то вроде этого
public static void main(String[] args) {
List<MyClass> rankingList = getLerRanking();
rankingList.forEach(item -> System.out.println(item));
}
Поскольку мы переопределили метод toString()
, он распечатает объект, отображаемый в файле.
Надеюсь, это поможет.