Разделить строку по два символа
Разбить строку на пары из двух символов. Если строка содержит нечетное количество символов, она должна заменить отсутствующий второй символ последней пары подчеркиванием ('_').
Пробовал такое решение но оно не проходит тесты
import java.util.ArrayList;
import java.util.List;
public class StringSplit {
public static List<String> solution(String s) {
List<String> res = new ArrayList<>();
for(int i = 0;i < s.length()-1;i+=2){
res.add(s.charAt(i) +String.valueOf(s.charAt(i+1)));
}
if(s.length()%2 != 0){
res.add(s.charAt(s.length() - 1) + String.valueOf('_'));
}
return res;
}
}
Ответы (1 шт):
Судя по ошибке, нужно возвращать не список строк, а массив, так как тест пытается преобразовать массив в строку Arrays.toString(StringSplit.solution(s)), для чего нужно изменить тип возвращаемого значения в методе и преобразовать список в массив:
public static String[] solution(String s) {
// ...
return res.toArray(new String[0]);
}
Также можно предварительно дополнить входную строку символом '_' и воспользоваться регулярным выражением (?<=\G.{2}) в методе String::split, где {2} определяет длину фрагмента строки после разбития:
public static String[] solution(String s) {
if (s.length() % 2 != 0) {
s = s + "_";
}
return s.split("(?<=\\G.{2})");
}