Created
November 24, 2017 13:45
-
-
Save alexshavelev/a09f5bae21dd7c191c93e1464bc9bdb8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.javarush.task.task19.task1927; | |
/* | |
Контекстная реклама | |
В методе main подмени объект System.out написанной тобой реадер-оберткой. | |
Твоя реадер-обертка должна выводить на консоль контекстную рекламу после каждого второго println-а. | |
Вызови готовый метод printSomething(), воспользуйся testString. | |
Верни переменной System.out первоначальный поток. | |
Рекламный текст: «JavaRush - курсы Java онлайн» | |
Пример вывода: | |
first | |
second | |
JavaRush - курсы Java онлайн | |
third | |
fourth | |
JavaRush - курсы Java онлайн | |
fifth | |
Требования: | |
1. Класс Solution должен содержать класс TestString. | |
2. Класс Solution должен содержать публичное статическое поле testString типа TestString, которое сразу проинициализировано. | |
3. Класс TestString должен содержать публичный void метод printSomething(). | |
4. Метод printSomething() класса TestString должен выводить на экран строки: "first","second","third","fourth","fifth". | |
5. Метод main(String[] args) класса Solution должен создавать поток PrintStream (используй PrintStream c параметром конструктора ByteArrayOutputStream). | |
6. Метод main(String[] args) класса Solution должен подменять и восстанавливать поток вывода в консоль объекта System.out. | |
7. Метод main(String[] args) класса Solution должен вызывать метод printSomething(),объекта testString. | |
8. Метод main(String[] args) класса Solution должен модифицировать строки(вставлять контекстную рекламу) выведенные методом printSomething() согласно заданию, и выводить её в консоль. | |
*/ | |
import java.io.ByteArrayOutputStream; | |
import java.io.PrintStream; | |
public class Solution { | |
public static TestString testString = new TestString(); | |
public static final String COMMERCIAL = "JavaRush - курсы Java онлайн\n"; | |
public static void main(String[] args) { | |
PrintStream consoleStream = System.out; | |
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); | |
PrintStream stream = new PrintStream(outputStream); | |
System.setOut(stream); | |
testString.printSomething(); | |
String result = outputStream.toString(); | |
int lineNumber = 1; | |
String[] lines = result.split("\\n"); | |
StringBuilder sb = new StringBuilder(); | |
for (String line : lines) { | |
sb.append(line + "\n"); | |
if (lineNumber % 2 == 0) { | |
sb.append(COMMERCIAL); | |
} | |
lineNumber++; | |
} | |
result = sb.toString(); | |
System.setOut(consoleStream); | |
System.out.println(result); | |
} | |
public static class TestString { | |
public void printSomething() { | |
System.out.println("first"); | |
System.out.println("second"); | |
System.out.println("third"); | |
System.out.println("fourth"); | |
System.out.println("fifth"); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment