Для себя разбил на 2 этапа:
1. Заполнить новый список
2. Вывести его в соответствии с заданием
Здесь добавляю и вывожу новый список не в соответствии с заданием. Но вопрос по п.1 выше:
Ожидаю, что наполнение списка будет соответстовать заданию, но это не так.
Возможно, нужно что-то придумать с индексами нового списка.
При этом, при попытке задублировать "слова", вставляя их в конец нового списка (add(st)), результат вывода всё равно получается странный.
В чём моё непонимание алгоритма добавления в этом случае?
P.S. закоментированный вывод можно не смотреть - его буду еще дорабатывать.
package com.javarush.task.task07.task0727;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Меняем функциональность
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> strings = new ArrayList<String>();
while (true) {
String string = reader.readLine();
if (string == null || string.isEmpty()) break;
strings.add(string);
}
ArrayList<String> resultStrings = new ArrayList<String>();
for (int i = 0; i < strings.size(); i++) {
int s = strings.get(i).length();
String st = strings.get(i);
if (s % 2 == 0) {
resultStrings.add(i, st);
}
else /* (s % 2 != 0)*/ {
resultStrings.add(i, st);
resultStrings.add(i, st);
}
}
for (int i = 0; i < resultStrings.size(); i++) {
System.out.println(resultStrings.get(i));
}
/*for (int i = 0; i < resultStrings.size() -1; i++) {
if (resultStrings.get(i) == resultStrings.get(i + 1)) {
System.out.println(resultStrings.get(i));
System.out.print(" " + resultStrings.get(i + 1));
}
else {
System.out.println(resultStrings.get(i));
}
}*/
}
}
в конецв позицию в списке, а должна быть конкатенация с пробелами "новой" строки и потом уже её помещение в список Представьте как массив количество строк то же что и было, а количество столбцов увеличится, в зависимости от условия