Advertisement
jaVer404

level19.lesson08.task02 (done) 1 attempt

Feb 22nd, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.86 KB | None | 0 0
  1. package com.javarush.test.level19.lesson08.task02;
  2.  
  3. /* Ридер обертка 2
  4. В методе main подмените объект System.out написанной вами ридер-оберткой по аналогии с лекцией
  5. Ваша ридер-обертка должна заменять все подстроки "te" на "??"
  6.  
  7. Вызовите готовый метод printSomething(), воспользуйтесь testString
  8.  
  9. Верните переменной System.out первоначальный поток
  10. Вывести модифицированную строку в консоль.
  11. */
  12.  
  13. import java.io.ByteArrayOutputStream;
  14. import java.io.PrintStream;
  15.  
  16. public class Solution {
  17.     public static TestString testString = new TestString();
  18.  
  19.     public static void main(String[] args) {
  20.         PrintStream originalOut = System.out;//сохраняем оригинальный System.out
  21.         ByteArrayOutputStream bAOS = new ByteArrayOutputStream();//создаем динам. массив
  22.         PrintStream stream = new PrintStream(bAOS);//создаем адаптер к классу PrintStream
  23.         System.setOut(stream);//устанавливаем адаптер как текущий out
  24.         //теперь печатает в bAOS
  25.         testString.printSomething();//out добавляет строки в bAOS
  26.         String result = (bAOS.toString()).replaceAll("te", "??");//переводим bAOS в String и replaceAll
  27.         System.setOut(originalOut);//возвращаем оригинальный out (на консоль)
  28.         System.out.println(result);//выводим в консоль (то, что result получил из bAOS)
  29.     }
  30.     public static class TestString {
  31.         public void printSomething() {
  32.             System.out.println("it's a text for testing");
  33.         }
  34.     }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement