原题链接 解题思路 首先将元音存储在一个list中,方便判断。(包括大小写)遍历原字符串将里面的元音记录到StringBuilder中,并反转遍历原字符串,将反转后的StringBuilder里的char写入char数组中将char数组转化为String返回 解题代码 public class Solution { public String reverseVowels(String s) { List<Character> list = new ArrayList<Character>(); list.add('a');list.add('o');list.add('e');list.add('i');list.add('u'); list.add('A');list.add('O');list.add('E');list.add('I');list.add('U'); StringBuilder sb = new StringBuilder(); char[] cs= s.toCharArray(); for(int i=0;i<cs.length;i++){ if(list.contains(cs[i])){ sb.append(cs[i]); } } sb.reverse(); int k = 0; for(int i=0;i<cs.length;i++){ if(list.contains(cs[i])){ cs[i] = sb.charAt(k++); } } return new String(cs); } }