В метод main первым параметром приходит имя файла1, вторым — файла2. Файл1 содержит слова, разделенные пробелом. Записать через запятую в Файл2 слова, длина которых строго больше 6. В конце файла2 запятой не должно быть. Закрыть потоки.
Длинные слова
- 12
Недоступна
Комментарии (330)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Evgenii
17 мая, 10:51
поделюсь своим вариантом сепаратизма - изюминки данной задачи, по моему мнению
0
Евгений
12 апреля, 10:29
как вариант, записать все слова через запятую в одну строку, а потом в конце обрезать запятую: line.replaceAll(",$", "")
0
Батислав Баткин душа в колесе сансары
8 апреля, 09:09
Казалось, задача супер простая, но валидатору что-то постоянно не нравилось.. заколебал идею на тексте самой задачки:
В метод main первым параметром приходит путь к файлу1, вторым - путь к файлу2.
Файл1 содержит слова, разделенные пробелом или переводом строки (в файле может быть несколько строк).
Все, что не относится к пробелу или переводу строки, разделителем не считать.
Записать в одну строку через запятую в Файл2 слова, длина которых строго больше 6.
В конце файла2 запятой не должно быть.
Закрыть потоки.
в итоге, задолбался, так как моё решение идеально подходило по требованиям, попробовал прогнать код из "правильного решения" на тексте, и вот что вышло:
параметром,приходит,файлу1,,файлу2.,содержит,разделенные,пробелом,переводом,несколько,строк).,относится,пробелу,переводу,строки,,разделителем,считать.,Записать,запятую,которых,запятой,Закрыть,потоки.
это ужасно.. "файлу1" "строк)" "строки,"....
результат моего кода:
параметром,приходит,содержит,разделенные,пробелом,переводом,несколько,относится,пробелу,переводу,разделителем,считать,Записать,запятую,которых,запятой,Закрыть
Уважаемые менторы, это что за халтура? Мы же вам, все-таки, деньги платим. Поправьте, пожалуйста, хотя бы для следующих поколений джаварашовцев.
0
Zuzu
9 апреля, 10:58
скинь код иди ссылку на форум где ты разместил вопрос
0
VladimirPic Работает в Gazprom
20 марта, 10:15
Инструкция выполнения задачи
1) Решить task в idea собственноручно
2) Затестить решение на всех возможных вариантах и убедиться в правильности кода (заглянуть в комменты, здесь тоже добрые люди накидывают идея для тестинга)
3) JavaRush => Помощь => Правильное решение => Запуск
Next task✅
+2
The Body of the Atr
17 февраля, 17:03
иногда не понятна лексика типа "строго" больше шести, типа если не строго, то иногда можно и меньше, главное что б строго не ругали.
Если обработать решенной задачей вот этот текст:
"Все, что не относится к пробелу или переводу строки, разделителем не считать.
Записать в одну строку через запятую в Файл2 слова, длина которых строго больше 6.
В конце файла2 запятой не должно быть."
то результат будет такой:
"относится,пробелу,переводу,строки,,разделителем,считать.,Записать,запятую,которых,запятой"
то есть в выходе кроме букв будут не только запятые и это нормально.
0
Bandat System analyst
20 февраля, 10:50
"Не строго" означает, что может быть и равно.
0
Денис Измайлов Инженер- программист в CloudFactory
2 марта, 08:56
Не знаю откуда Вы это взяли, но БОЛЬШЕ имеет значение БОЛЬШЕ, а не "большеилиравно" без всяких "строго" :) Ну, как то так это в Русском языке, не знаю про другие :)
0
Bandat System analyst
2 марта, 17:40
Из основ математики я это взял, из основ математики ...
0
Elidriel
10 февраля, 13:37
Так... ну мое решение оказалось в два раза короче, и по-моему легче, так что выложу последовательность действий:
1) arraylistы нам не нужны, нам нужен StringBuilder, создаем его
2) в цикле while считываем построчно из файла
3) каждую строку переводим в массив
4) по массиву проходимся foreach-ем и через if при помощи такой замечательной конструкции -
, добавляем в StringBuilder удовлетворяющие нас слова (незабываем добавлять запятые)
5) ну а дальше можно поместить все в одну строку _
(в регулярочках за последний символ отвечает знак $)
+1
Денис Измайлов Инженер- программист в CloudFactory
2 марта, 09:31
зачем так длинно ? :)
там нужны только 2 файловые переменные и 2 текстовые, причем 1 текстовая чисто вспомогательная чтобы не городить огород с вычислениями, когда надо/не надо ставить запятую - разделитель :)
решение укладывается в один цикл (а не с кучей как в "эталоне") одной строкой
while (file.ready()) {
for (String s:file.readLine().split(" ")) if (s.length()>6) {fileout.write(d + s); d=",";}
}
Никаих регулярок, никаких билдеров в принципе не надо :)
0
Евгений
2 февраля, 18:31
Запись в файл через запятую. Без всяких пробелов.
0
SoSed
25 января, 08:37
Регулярку "[\s\n]" валидатор не принимает. "[ \n]" - норм
UPD1 Оказывается, достаточно просто " ". Интересно, почему?
UPD2 Да потому, что читаем-то построчно. По переносу строки данные разделены изначально (если, конечно их не в строку собирать).
0
Sasha Dokuchaev Работает в Andersen
12 января, 21:07
Последние несколько задач думал, что валидатор отстой
А затем, спустя час-два оказывалось, что всё-таки я не доработал, и вывод может быть неверным
В общем, имхо не стоит сразу плеваться и Ctrl+C — Ctrl-V решение скармливать валидатору, а хотя бы минут 15 поискать ошибку у себя, или в комментариях, или в гугле
0
Антон Власов
16 января, 17:22
в таких случаях мне очень помогает тестовый прогон программки на компе. Если тесты не выдают ошибок на различных данных, то тогда уж лезу смотреть что там в решении от разработчиков. Но чаще всего, ошибка находится на моей стороне)
+1
Юрий
3 января, 19:20
Решил. а чего сразу не указать, что нужно использовать StringBuilder и System.lineSeparator()?
0