package Sorting; import java.util.ArrayList; import java.nio.file.Files; import java.nio.file.Path; import java.io.BufferedReader; import java.io.IOException; import java.util.Arrays; public class RandomWordFileReader { private ArrayList words = new ArrayList(); public RandomWordFileReader(String filename){ try(BufferedReader reader = Files.newBufferedReader(Path.of(filename));){ //This should use flatMap to make a string array from the line, and then turn the elements of that array into a stream, which goes to forEach reader.lines().flatMap(line -> Arrays.stream(line.split("[\\W\\s\\n_ ]+"))).forEach(word -> words.add(word.toLowerCase())); }catch (IOException ex){ System.err.println(ex); } for (int i = 0; i < words.size(); i++) { if (words.get(i).matches("")) { words.remove(i); i--; } } } public ArrayList getWords(){ return words; } }