И
System.lineSeparator() использовал и "\n" и System.out.println
ошибка одна и таже Используй "\n", или System.lineSeparator() в качестве разделителя строк.
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) {
PrintStream consoleStream = System.out;
//Создаем динамический массив
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//создаем адаптер к классу PrintStream
PrintStream stream = new PrintStream(outputStream);
//Устанавливаем его как текущий System.out
System.setOut(stream);
//Вызываем функцию, которая ничего не знает о наших манипуляциях
testString.printSomething();
//Преобразовываем записанные в наш ByteArray данные в строку
String result = outputStream.toString();
//Возвращаем все как было
System.setOut(consoleStream);
String [] s = result.split("\r\n");
for (int i = 0,a=1; i <s.length ; i++, a++) {
if(a%3==0) System.out.print("JavaRush - курсы Java онлайн"+System.lineSeparator());
else System.out.print(s[i]+System.lineSeparator());
}
}
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");
}
}
}