Доброго времени суток, не понимаю в чём ошибка. Не проходит, данное решение ,требования 3 и 4.
Условие
Меняем функциональность
Задача: Программа вводит строки, пока пользователь не введёт пустую строку (нажав enter). Потом она конвертирует строки в верхний регистр (Мама превращается в МАМА) и выводит их на экран.
Новая задача: Программа вводит строки, пока пользователь не введёт пустую строку (нажав enter).
Потом программа строит новый список. Если в строке чётное число букв, строка удваивается, если нечётное - утраивается.
Программа выводит содержимое нового списка на экран.
Требования
Требования:
1. Программа должна считывать данные с клавиатуры.
2. Программа должна вывести столько же строк, сколько было введено.
3. Если в строке было четное число букв, то необходимо удвоить строку (как в примере).
4. Если в строке было нечетное число букв, то необходимо утроить строку (как в примере).
5. Программа должна прекращать считывать данные с клавиатуры как только пользователь введет пустую строку и нажмет Enter.
Решение
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> stringRedacted = new ArrayList<String>();
stringRedacted = isEvenOrOdd(strings);
toPrintArrayList(stringRedacted);
/*
ArrayList<String> resultStrings = new ArrayList<String>();
for (int i = 0; i < strings.size(); i++) {
String string = strings.get(i);
resultStrings.add(string.toUpperCase());
}
for (int i = 0; i < resultStrings.size(); i++) {
System.out.println(resultStrings.get(i));
}*/
}
public static ArrayList<String> isEvenOrOdd(ArrayList<String> list){
ArrayList<String> toReturn = new ArrayList<String>();
for (int i = 0; i < list.size(); i++){
if (list.get(i).length() % 2 == 0)
toReturn.add(i, list.get(i) + list.get(i));
else
toReturn.add(i, list.get(i) + list.get(i) + list.get(i));
}
return toReturn;
}
public static void toPrintArrayList(ArrayList<String> list){
for (int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
}
}