Считаем слово

  • 20
  • Недоступна
Считать с консоли имя файла. Файл содержит слова, разделенные знаками препинания. Вывести в консоль количество слов "world", которые встречаются в файле. Закрыть потоки.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (444)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Антоний Шаламов19 уровень, Хабаровск
суббота, 19:09
Несколько дней ломал голову, пока не осознал, что моя регулярка не учитывала перенос строки. я читал весь файл в одну строку, сплитовал регуляркой в массив строк и уже в цикле находил совпадения. Пробовал разные регулярки, все они выдавали верный результат, но не принимались валидатором. Пока я не попробовал в файле добавить слова с новой строки. И КАААААК осознал🤭
Omar Akkulov19 уровень, Санкт-Петербург
26 июля, 20:42
Подскажите, пожалуйста, хорошую книгу по регулярным выражениям, либо видео на ютубе или что-то такое, что поможет разобраться с регулярками)
Vladislav20 уровень
четверг, 12:29
Есть статья в 5 частях на JavaRush, после нее можно уже работать с регулярками Или более легкий вариант в видео (цикл уроков)
Omar Akkulov19 уровень, Санкт-Петербург
четверг, 21:10
Спасибо)
Уася23 уровень, Замусральск
24 июля, 09:40
Эх, 8 попыток из-за глупой ошибки. Когда читал в StringBuilder линии, не добавил в конце пробел между строками: sb.append(file.readLine()+" ");
Виталий19 уровень, Санкт-Петербург
20 июля, 18:24
1.somestring.split("\\W"); //Любой знак, отличный от буквы или цифры 2.проверка .equals("world");
Сергей27 уровень, Харьков
3 июля, 14:38
Подсказки это все хорошо, но соединяя текст из строк, не мог понять почему валидатор не принимает. Нужно в начале каждой следующей строки добавить пробел, вот и всех делов.....
Екатерина23 уровень, Санкт-Петербург
1 июля, 12:03
Если использовать класс Scanner достаточно рассплитовать полученную строку выражением [\pP].
(@__@)30 уровень
1 июля, 09:53
вариант для извращенцев:
String[] arr = fileString.split("\\bworld\\b");
System.out.println(arr.length - 1);
в нем есть нюансы.. но валидатор съел :)
Амиро20 уровень, хабаровск
30 июня, 13:33
проходит без Pattern и Matcher
String[] sArr = s.split("\\W"); // где \W - все символы кроме букв
Kalinka19 уровень, Москва
9 июля, 19:12
Спасибо! Работает прекрасно.
Vitalachka22 уровень, Лондон
20 июня, 12:08
в общем долго возилась и сделала так. 1. С pattern и matcher выделила все слова. 2. засунула слова в лист 3. С Collections посчитала сколько world слов 4. вывела в консоль можно сделать через StringBuilder, а не лист. В предыдущих комментариях есть отличный пример. можно так же использовать char массив с знаками препинания для выделения слов, или просто строку
Василий Бабин25 уровень, Москва
18 июня, 12:59
Я так сделал.
String symbols = " .!?,:;-'()-_—[]@{}*<>&#~/\n\\\"";
и
symbols.indexOf(charData)
Игорь Birt19 уровень, Тирасполь
22 июля, 13:35
Это как вообще? Что здесь происходит?)