Контекстная реклама

  • 12
  • Недоступна
В методе main подмени объект System.out написанной тобой ридер-оберткой. Твоя ридер-обертка должна выводить на консоль контекстную рекламу после каждого второго println-а. Вызови готовый метод printSomething(), воспользуйся testString. Верни переменной System.out первоначальный поток. Рекламный т
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (137)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
murMeow
Уровень 17, Санкт-Петербург, Russian Federation
21 января, 15:04
ух, уже которую задачу делаю ошибки в экранировании символов. то вместо "\\n" наберу "//n", то "/n"...
Сергей Коваленко
Уровень 32, Краснодар
18 января, 13:02
но по факту наша обертка ничего не делает, кроме записи данных в буфер.
Buble76
Уровень 33, Москва, Россия
6 декабря 2021, 22:33
Решил через вывод ByteArrayOutputStream в файл (не придумал куда outputStream еще запихать) и потом его чтение буфер ридером - не хотел со сплитом связываться - не приняло - писало что не вызываю 2 раза setOut и рекламу не правильно вывожу. Переписал стандартно через сплит и массив стрингов - приняло - учтите.
Sergey Kornilov
Уровень 37, Petropavlovsk, Казахстан
26 ноября 2021, 07:31
Всего эту задачу решили 15594 учеников. String[] result = byteArrayOutputStream.toString().split("\\n");
imik
Уровень 35, Ufa
21 ноября 2021, 08:56
сильно удивился увидев такой же внутренний if при выводе контекстной строки :) а так System.lineSeparator() для разбиения всем в помощь, кратко и лаконично.
Максим Романов
Уровень 30, Санкт-Петербург, Россия
16 ноября 2021, 09:26
String[] out = outputStream.toString().split("\\n"); На Windows 11, валидатор одобрил.
Александр Горохов
Уровень 20, Дятьково, Россия
12 декабря 2021, 08:35
надо на 98 потестить
Dolivo Serg
Уровень 28, Харьков
29 сентября 2021, 13:47
напомните , нужно ли закрывать ByteArrayOutputStream ?
Sergey Kornilov
Уровень 37, Petropavlovsk, Казахстан
26 ноября 2021, 08:40
Закрывать ByteArrayOutputStream НЕ НУЖНО, так как он не связан не с сетью , не с файлом. Его уничтожит сборщик мусора, когда ссылка на объект не будет использоваться. Более того в исходниках код метода пустой. public void close() throws IOException { }
Виноградина
Уровень 48, Berkeley, United States
16 сентября 2021, 03:34
прикол, я не понял задания решил вообще по другому и это еще и прошло! суть такая: создал свой класс унаследованный от PrintStream, переопределил метод println и там после каждого второго вызова печатал рекламу. Объект создал так
MyPrintStream printStream = new MyPrintStream(System.out);
а класс покажу в комменте если кому интересно по моему гораздо лаканичнее чем в ответах
Виноградина
Уровень 48, Berkeley, United States
16 сентября 2021, 03:35
и еще придется добавить костыль чисто для валидатора создать и не трогать
new PrintStream(new ByteArrayOutputStream());
Руслан
Уровень 26, Минск, Беларусь
17 августа 2021, 11:50
Не могу понять почему когда мы сплитим строку: String [] split = baos.toString().split("\\n"); После пытался посмотреть массив на наличие строк: System.out.println(Arrays.toString(split)); В консоле выводится только в это: " ] ". По факту в массиве ячейки заняты словами нормально. Кто-нибудь объяснит почему так?
Buble76
Уровень 33, Москва, Россия
6 декабря 2021, 21:21
почему-то надо через \\r - тогда массив заполниться
Vladyslav Pelykh
Уровень 41, Днепр, Украина
30 июля 2021, 16:35
Я: Скопировал текст рекламы и вставил в программу. Валя: Внимательно проверь 'рекламный' текст, похоже ты допустил опечатку.