public class Solution {
public static TestString testString = new TestString();
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
PrintStream systemOut = System.out;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream stream = new PrintStream(baos);
System.setOut(stream);
testString.printSomething();
String output = new String(String.valueOf(baos));
String[] array = output.split("\r\n");
for (int i = 0; i < array.length; i++) {
sb.append(array[i] + "\n");
if (i % 2 != 0) {
sb.append("JavaRush - курсы Java онлайн" + "\n");
}
}
System.setOut(systemOut);
System.out.println(sb.toString());
}
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");
}
}
}
bazhukovsi_second
23 уровень
Валидатор не принимает решение. Какой совет можете дать. Вывод правильный
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
bazhukovsi_second
20 августа 2021, 10:03
Дебагер показал разделитель \r\n. Но валидатор принял без \r. Спасибо.
0
Vitali
20 августа 2021, 08:09
Для исключения вопросов с системными переносами строк лучше использовать System.lineSeparator(). StringBuilder, возможно, излишен; можно выводить сразу в консоль построчно.
0
Белич Максим Работает в BelEnergo ❤
20 августа 2021, 07:18
скорее всего из-за /r /n . Убери /r - а просто сплить по /n. У валидатора линукс, другая ос, там по-другому строки переносятся. И еще зачем этот стринг билдер в цикле, просто выводи в консоль строку и делай проверку i % 2 != 0, если true выводи рекламу. попробуй
0