У меня есть файл, который выгружает каждую строку в позицию в ArrayList, и я хочу, чтобы пользователь мог сортировать список только с линиями, имеющими определенное количество слов , Я не могу понять, как заставить его распечатать оставшийся список (правильных нумерованных записей).Сортировка списка строк по количеству слов
Начинает с поиска первого слова в списке, затем он выполняет итерацию через CharSequence и проверяет, равен ли символ пробелу: «Если это так, то он увеличивает nWords на 1 и если nWords не равно userInput (номер, который пользователь вводит для сортировки списка по количеству слов), он должен удалить этот элемент из списка.
ArrayList<CharSequence> str = new ArrayList();
str.add("Hello");
str.add("Hi there");
str.add("toad");
str.add("i see you");
System.out.println("How many words?");
Scanner scan = new Scanner(System.in);
int userInput = scan.nextInt();
for (int loopNumber = 0; loopNumber < str.size();) {
int nWords = 1;
for (int i = 0; i < str.get(loopNumber).length(); i++) {
if (str.get(loopNumber).charAt(i) == ' ') {
nWords++;
if (nWords != userInput) {
str.remove(loopNumber);
}
}
}
loopNumber++;
}
Подсчет чисел пробелов для определения количества слов чреват опасностью! Если вход содержит вкладки или двойной интервал, ваш счет будет неправильным. До тех пор, пока ваш текст написан на английском языке (в отличие от математики, табличных данных и т. Д.), Самым безопасным * простым * методом подсчета слов, вероятно, будет вызов 'line.split (« \\ s + »). Length' для каждой строки в документе. –
Можно ли написать ожидаемый вывод примера ур? – OnePunchMan