Длинные слова

  • 10
  • Недоступна
В метод main первым параметром приходит имя файла1, вторым — файла2. Файл1 содержит слова, разделенные пробелом. Записать через запятую в Файл2 слова, длина которых строго больше 6. В конце файла2 запятой не должно быть. Закрыть потоки.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (145)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Николай20 уровень
вчера, 14:08
Опять невнимательность - не прочитал, что параметры не надо с консоли считывать ))
Petrusiova20 уровень
воскресенье, 17:11
как НЕ проходит:
BufferedWriter writer = new BufferedWriter(new FileWriter(fileOut, true));
(говорит убедиться, что использую FileWriter) как проходит:
BufferedWriter writer = new BufferedWriter(new FileWriter(fileOut));
Вячеслав20 уровень, Санкт-Петербург
пятница, 14:28
Как, ссука, из фразы "Файл1 содержит слова, разделенные пробелом." понять, что Файл1 на самом деле содержит ни "слова, разделенные пробелом", а, строки, состоящие из слов, разделённых пробелами??? Составленные на от.....бись условия к задачам уже в корне раздражают.
Николай20 уровень
вчера, 14:11
Вячеслав, раздражительность плохая черта для разработчика. Но к слову сказать, в задании не сказано, что строка одна. Поэтому в принципе все корректно. Да и хорошая практика - всегда считывать ВЕСЬ файл ))
Вячеслав20 уровень, Санкт-Петербург
вчера, 15:39
В условии к одному из предыдущих заданий (точно не помню к какому) было сказано что-то типа "файл содержит строки со словами, разделёнными пробелами". Здесь вопросов нет - условие корректно. Почему же в этом задании, раз это проверяется, структура файла не была описана аналогично? Да, здесь не сказано, что строка одна, но сказано "содержит слова, разделенные пробелом", что, на мой взгляд, исключает наличие нескольких строк в файле. Слова через пробел, всё. Никаких переносов строк. И, раз уж мы здесь учимся, это ресурс учебный, то условия к задачам, я считаю, должны быть чёткими, эталонными (ну или близки к таковым), чтобы сразу привыкать к хорошему, к тому как должно быть правильно, а не к "а-ай... и так сойдёт". Хотелось бы тратить больше времени на обучение, а не на уламывание валидатора перебором вариантов. И, во-первых, кто сказал, что ВЕСЬ файл не является или не может являться одной строкой? Во-вторых, если считать ВЕСЬ файл и распарсить его по условию, то правильного выполнения не будет - про строки в условии ничего не сказано.
Николай20 уровень
вчера, 15:42
я думаю и помимо этой задачи вы встречали такие, где не сразу поймешь что от тебя хотят. И в реальности это нормально. Поэтому нужно просто успокоиться и решать, решать, решать ))
Вячеслав20 уровень, Санкт-Петербург
вчера, 16:10
Когда несколько часов к ряду мучаешься с одной задачей из-за нечёткого условия, хочется ломать, ломать, ломать... Ещё раз повторю - в жизни нет валидатора. Написал? Написал. Работает? Работает. Всё, эту тестировщикам на проверку, следующую задачу в студию! Уговаривать никого не надо, тем более когда написано одно, а имеется ввиду другое.
Николай20 уровень
вчера, 18:35
Как хотите, не мне вас переубеждать.
Вячеслав20 уровень, Санкт-Петербург
вчера, 21:40
Отчего же? Я за диалог. Только конструктивный, с приведением аргументов и парирование доводов оппонента. А не просто словами, что всё корректно, потому что в реальности это нормально. Во-первых, в реальности всё же другой подход, а, во-вторых, в разных фирмах разные представления о "нормальности". И обсуждение началось не с реальности, а с учебного ресурса. Аргументы в пользу того, каким он должен быть по моему представлению, я уже приводил.
Николай20 уровень
10 часов назад
Аргументы? Ок. В задаче написано, что в файле только одна строка? Нет. Это вы так интерпретировали ... сделали ложные выводы.
Вячеслав20 уровень, Санкт-Петербург
7 часов назад
Блин... Комментирую себя: "В условии к одному из предыдущих заданий (точно не помню к какому) было сказано что-то типа "файл содержит строки со словами, разделёнными пробелами". Здесь вопросов нет - условие корректно. Почему же в этом задании, раз это проверяется, структура файла не была описана аналогично?" По логике - если ранее было, а тут нет, значит не написали не просто так. Далее по тексту: "Да, здесь не сказано, что строка одна, но сказано "содержит слова, разделенные пробелом", что, на мой взгляд, исключает наличие нескольких строк в файле. Слова через пробел, всё. Никаких переносов строк."
Николай20 уровень
7 часов назад
Ну перечитайте себя же еще разок - вы сами додумали это условие. Да, в предыдущей задаче это было четко прописано, но в этой же нет такого же четкого указания, что в файле только одна строка? Ваша логика следующая - если там было четко написано, значит здесь ДОЛЖНО быть то же четко прописано. Оказывается - не должно. Просто не стоит так из за этого переживать - главное решение уже сделано, опыт получен, знания получаются.
Вячеслав20 уровень, Санкт-Петербург
5 часов назад
Совершенно верно! Моя логика такова. "Оказывается - не должно" - в том и дело, что должно, а то, что не указали - допустили неточность в условии. Мою логику подкрепляет и второй аргумент. Указано чётко в файле то, что есть, значит другого нет. По крайней мере я могу это не учитывать, а валидатор при прогоне тестов, соответственно, не должен. По вашей логике, почему там не быть запятым, кавычкам, двоеточим, возвратам каретки и т.д.? Про них же тоже ничего не сказано. А выводить нужно только слова.
Aleksei Dobrovolskii20 уровень
5 марта, 04:01
Три попытки профукал на том, что, оказывается, валидатор считает словом не "всё_что_состоит_из_букв", а "всё_что_не_пробел" *facepalm*
Демин Андрей20 уровень
1 марта, 17:52
опять пришлось копипастить, жабараш прям тренирует этот скил, написал решение, волентина не принял, спиздил код, запустил и оБоже, вывод такой же, а валентин радуется,зачем ото надо :(
Николай20 уровень
вчера, 14:15
зачем копипастить? ручками на автомате набивается за 3 минуты весь код - зато руки будут помнить. Но так же вы зря используете чужой код только для того, что бы пройти валидатор - это плохая практика, т.к. мы в начале своего пути, а разработчики курса достаточно опытные программисты и могут учитывать в решении то, на что вы и внимания бы не обратили. Для этого у валидатора есть юнит тесты при помощи которых проверяется наш код - в него просто подставляются тестовые данные различной сложности. И то, что у вас ваш код работает еще не означает, что он правильно будет работать на всех видах данных.
Иван20 уровень, Москва
28 февраля, 12:26
Из-за того что не добавлял пустую строку, валидатор не принимал, вот до сих пор не могу понять зачем оно нужно
while(readFile.ready()){
            builder.append(readFile.readLine());
            builder.append(" ");
        }
UPD: пробел добавляется, чтобы слова со следующей строчки не сливалось в одно слово
Филипп20 уровень, Минск
11 марта, 12:38
там про следующую строчку ничего не сказано, написано что слова разделены ПРОБЕЛОМ, символ 'переход на новую строку' не равно символ 'пробел', в этом уровне задачки составлены и проработаны откровенно на отъ*бись. Т.е. по логике читает весь файл одна команда readLine и работаем с одной строкой. Специально проверял, в блокноте 100500 символов ввел без Entera и прочитал Ридером, все читается одной строкой, никаких "когда переходит на новую строку автоматом \r\n ставит".
bonescccp25 уровень, Минск
23 февраля, 11:09
В условии надо было бы явно указать что файл содержит СТРОКИ со словами разделенными пробелами, потому что это не очевидно. На что, собственно говоря, и потратил попытку.
Dmytro Zhelezniak24 уровень, Харьков
16 февраля, 11:09
1.Считал строки. 2.Разбил по пробелам в массив. 3. Проверил по длине символов. Если больше 6, то в стрингбилдер. 4. Вывел строку с длиной строки -1. Возможно, не самое правильное решение, но самое простое, на мой взгляд.
Boris23 уровень
27 февраля, 09:44
идентично сдал также, зашёл сюда если ктот делал по другому.
REM22 уровень, Москва
3 марта, 07:23
4. вывел строку удалив у нее последний чар.:)
Илья22826 уровень, Москва
1 февраля, 13:12
скопирую свой комментарий, многие почему-то любят regex101, но мы же не питонисты... Так а regex101 для Java разве предлагает для Java тестить регулярки? Вроде нет я бы лучше советовал вот этот: https://www.freeformatter.com/java-regex-tester.html специально для Java... с 3 методами(replaceAll и тд) и описаниями регулярок внизу, а также готовыми выражениями под многие базовые задачи
Даниил24 уровень
30 января, 23:53
Решил аж с 5 попытки... Погорел на том что при удалении запятой в конце удалял и крайний знак записанной в файл строки, а остальное... Внимание, приколы валидатора !!! Учтите что должны обязательно и буквы из кириллицы считаться как совпадение. Ну а кто решил наваять мега регулярное выражение, сгодилось просто \\S{7,}. Как бы условие задания очень не чёткое...
Илья22826 уровень, Москва
1 февраля, 13:08
решается изи без регулярок, вернее без реплейсов или матчес сплитим по пробелам, ищем длину, потом юзаем стрингбилдер и все О_О