Advertisement
jaVer404

level19.lesson08.task03 (done) 1st attempt

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