package com.javarush.test.level19.lesson08.task03;
/* Выводим только цифры
В методе main подмените объект System.out написанной вами ридер-оберткой по аналогии с лекцией
Ваша ридер-обертка должна выводить только цифры
Вызовите готовый метод printSomething(), воспользуйтесь testString
Верните переменной System.out первоначальный поток
Вывести модифицированную строку в консоль.
Пример вывода:
12345678
*/
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 = digits(result);
System.out.println(string);
}
private static String digits(String outputStream) {
char[] ch = outputStream.toCharArray();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < ch.length; i++) {
if (Character.isDigit(ch[i])) builder.append(Character.toString(ch[i]));
}
return builder.toString();
}
public static class TestString {
public void printSomething() {
System.out.println("it's 1 a 23 text 4 f5-6or7 tes8ting");
}
}
}
Leave A Comment