Я бы назвал String.toCharArray()
, а затем преобразовал бы четные индексы в верхний регистр с Character.toUpperCase(char)
и нечетные индексы в строчные с Character.toLowerCase(char)
.Наконец, верните новый String
на основе обновленного char[]
.Например,
public static String altCase(String text) {
char[] arr = text.toCharArray();
for (int i = 0; i < arr.length; i++) {
if (i % 2 == 0) {
arr[i] = Character.toUpperCase(arr[i]);
} else {
arr[i] = Character.toLowerCase(arr[i]);
}
}
return new String(arr);
}
При отражении мы можем улучшить это, преобразовав сначала входные данные в верхний регистр, а затем изменив только нечетные элементы в нижний регистр.Например,
public static String altCase(String text) {
char[] arr = text.toUpperCase().toCharArray();
for (int i = 1; i < arr.length; i += 2) {
arr[i] = Character.toLowerCase(arr[i]);
}
return new String(arr);
}
Я предполагаю, что ввод не всегда строго строчный.Если это так, то было бы тривиально пропустить предварительное преобразование и применить тот же подход к четным индексам.Мол,
public static String altCase(String text) {
char[] arr = text.toCharArray();
for (int i = 0; i < arr.length; i += 2) {
arr[i] = Character.toUpperCase(arr[i]);
}
return new String(arr);
}