小编菜解
public static String reverseVowels(String s) {
List list = new ArrayList() { {
add(‘a’);
add(‘e’);
add(‘i’);
add(‘o’);
add(‘u’);
}};
char[] chars = s.toCharArray();
int lg = s.length();
int right = s.length();
//遍历字符串前半段,如果是元音,则寻找右半段的最后一个元音,然后交换。
//如果不是则不做处理。
for (int left = 0; left < lg / 2; left++) {
char e = 0;
if (list.contains(chars[left])) {
//寻找右半段的最后一个元音
for (int j = right - 1; j >= 0; j–) {
e = chars[j];
if (list.contains(e)) {
right = j;
break;
}
}
//交换最左元音和最右元音
char temp = chars[left];
chars[left] = e;
chars[right] = temp;
}
}
return new String(chars);
}