package com.javarush.task.task19.task1927;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
/*
Контекстная реклама
*/
public class Solution {
public static TestString testString = new TestString();
public static void main(String[] args) throws Exception {
//сохраняем исходный System.out
PrintStream cons = System.out;
//создание объекта класса потока вывода массива
ByteArrayOutputStream bos = new ByteArrayOutputStream();
//Инициализируем новый объект класса PrintStream и подменяем им System.out
PrintStream ps = new PrintStream(bos);
System.setOut(ps);
//получаем в ps поток вывода метода printSomething
testString.printSomething();
//полученный поток вывода (bos) переводим в строковый массив,кол-во элементов
//считается по разделителю lineSeparator
String[] str = bos.toString().split(System.lineSeparator());
StringBuilder sb = new StringBuilder(bos.toString());
//определяем строку которую будем подставлять в str
String context = "JavaRush - курсы Java онлайн" + System.lineSeparator();
int searchPos = 0;
if (str.length >= 2){
for (int j = 2; j < str.length ; j++) {
if ( (j ) % 2 == 0) {
int index = sb.indexOf(str[j], searchPos);
searchPos = index;
sb.insert(index, context);
}
}
}
if (str.length % 2 == 0) sb.append(context);
bos.reset();
bos.write(sb.toString().getBytes());
System.setOut(cons);
ps.close();
System.out.println(bos);
}
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");
}
}
}
Groot
23 уровень
Говорят я невнимательный
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Groot
1 октября 2020, 14:41решение
+2
Учиха ШисуиJunior Android Developer в SoftWeatherExpert
1 октября 2020, 12:18
Странный код
0
hidden #2322530
1 октября 2020, 11:47
а при таком main например что у тебя выведет? )))
+1
Groot
1 октября 2020, 14:41
Действительно, выведет хрень
0