Каждый из вызовов StdIn.readString()
читает другую строку. Таким образом, даже если строка, которую вы прочитали в условии while, не пуста, вы читаете (или пытаетесь прочитать) другую строку внутри l oop.
Сохранить в переменной:
String r;
while (!(r = StdIn.readString()).isEmpty()) {
s = s.concat(r);
}
Кстати, лучшим подходом, чем concat
, было бы просто использовать s += r
или StringBuilder
:
StringBuilder sb = new StringBuilder();
String r;
while (!(r = StdIn.readString()).isEmpty()) {
sb.append(r);
}
s = sb.toString();