Необходимо считать несколько строк из файла, отсортировать их по слову (по алфавиту), номер которого введет пользователь. Не получается сортировка, не понимаю как написать компаратор по слову.
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.*;
public class Main {
public static void main(String[] args) {
String path = "src/text";
String outSort1 = "src/output1";
String line = "";
int input = 0;
Scanner scn = new Scanner(System.in);
ArrayList<String> list = new ArrayList<>();
try {
BufferedReader br = new BufferedReader(new FileReader(path));
while((line = br.readLine()) != null){
list.add(line);
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Введите номер слова для сортировки: ");
input = scn.nextInt();
int finalInput = input;
Collections.sort(list, new Comparator<String>() {
public int compare(String o1, String o2) {
return list.get(0).split(" ")[finalInput].compareTo(list.get(1).split(" ")[finalInput]);
}
});
write(list, outSort3);
}
public static void write (ArrayList<String> list, String path) {
try {
PrintWriter printWriter = new PrintWriter(path);
for (int i = 0; i < list.size(); i++) {
printWriter.println(list.get(i));
printWriter.flush();
}
printWriter.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}