package com.javarush.test.level19.lesson08.task02;
/* Ридер обертка 2
В методе main подмените объект System.out написанной вами ридер-оберткой по аналогии с лекцией
Ваша ридер-обертка должна заменять все подстроки "te" на "??"
Вызовите готовый метод printSomething(), воспользуйтесь testString
Верните переменной System.out первоначальный поток
Вывести модифицированную строку в консоль.
*/
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
public class Solution {
public static TestString testString = new TestString();
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();
System.setOut(consoleStream);
String string = change(result);
System.out.println(string);
}
private static String change(String outputStream) {
char[] ch = outputStream.toCharArray();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < ch.length; i++) {
if (ch[i] == 't' && ch[i + 1] == 'e') {
ch[i] = '?';
ch[i + 1] = '?';
}
builder.append(Character.toString(ch[i]));
}
return builder.toString();
}
public static class TestString {
public void printSomething() {
System.out.println("it's a text for testing");
}
}
}
Leave A Comment