Замена знаков

  • 12
  • Недоступна
Считать с консоли 2 имени файла. Первый Файл содержит текст. Считать содержимое первого файла и заменить все точки "." на знак "!". Результат вывести во второй файл. Закрыть потоки.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (118)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Сергей
Уровень 28
26 апреля, 03:36
решил с первой попытки. С потерей переносов в концах строк. Валидатор почему то принял.
3 апреля, 18:46
Соскучилась по стримам. Набиваю руку на стримах.
LukasKeyn
Уровень 37
2 апреля, 13:01
соскучился по решению с 1 попытки...
Антон
Уровень 35
2 апреля, 11:35
Соскучился по решениям в одну строчку.
writer.write(reader.readLine().replaceAll("\\.", "!"));
Eldar K.
Уровень 39
Expert
17 марта, 13:22
Как запомнить выражение и отложить в долгой памяти. Интересно я один такой извращенец - похожие задачи не копирую код из предыдущей, а набиваю заново... Еще пару недель назад, когда проходил первую часть - Java Syntax, каждый раз лазил в лекцию и смотрел, что там надо набивать BufferedReader ? ... = ?new ? BufferedReader и т.д., теперь за счет многократной набивки уже автоматически строчится.
Антон
Уровень 35
2 апреля, 11:37
Делаю также. Цель задач - тренировка, а не получение результата. Так зачем же лишать себя такого важного аспекта обучения, как машинальное запоминание.
Олег Пономарев
Уровень 36
24 января, 21:06
Раз уж тут все делятся ... у меня такой вариант решения, без регулярки)
fileWriter.write(fileReader.readLine().replace ('.', '!'));
fileWriter.newLine();
Lafaed
Уровень 36
3 февраля, 22:00
😱 а были предпосылки что решение делается через регулярки ?
Олег Пономарев
Уровень 36
4 февраля, 08:23
Предпосылок не было, решал, как говорится, с чистого листа. Комментарии почитал - многие через ReplaceAll сделали, но с доп массивом, а такой ресурс как память надо экономить
Алексей Щукин
Уровень 26
17 января, 06:19
В этом блоке задач появился класс сложности "EPIC", эту задачу я бы отнёс к "SUPER EASY", ни как не "MEDIUM"
Greifall
Уровень 42
12 января, 00:27
Никаких while не надо
bufferedWriter.write(bufferedReader.readLine().replaceAll("\\.", "!"));
Сразу всю строку меняете и записываете Из лекции: Класс BufferedReader, являющийся удобной надстройкой над Reader, имеет один очень удобный метод: readLine(). Этот метод позволяет читать из Reader-а сразу целыми строками (т.е. линиями). Когда ты в своем коде вызываешь метод readLine, он читает из объекта Reader символы, пока не встретится enter. Как только enter встретится, метод склеит символы в одну строку и вернет ее.
Lafaed
Уровень 36
3 февраля, 22:07
Интересная мысль, но ведь readLine() вернёт строку после нахождения enter. А как же остальные строки? Или же BufferedReader потоком выдаёт строки пока file.ready() || file.available() ? Буду рад прочитать ваше краткое, содержательное, обьяснение!
Anonymous #2425185
Уровень 36
9 января, 10:01
"правильное решение" удаляет знаки переноса строки из первого файла и файлы уже отличаются не только "." и "!", а валидатор этого "не видит"
BlackGrizzli Team
Уровень 46
25 ноября 2022, 21:47
Мда, правильное решение убило. Обычно замечал, что без надобности они проводят манипуляции со строками не занося их в массивы, коллекции. В этой теме прям Все да наоборот.