public static boolean esVocal(char c) { return "AEIOUaeiou".indexOf(c) != -1; } public String ordenarvocales(String cadena) { if (cadena == null) { return cadena; } StringBuilder result = new StringBuilder(cadena); ArrayList PosicionVocales = new ArrayList<>(); ArrayList vocales = new ArrayList<>(); for (int pvocal = 0; pvocal< cadena.length(); pvocal++) { char vocalActual = cadena.charAt(pvocal); if(esVocal(vocalActual)) { PosicionVocales.add(pvocal); vocales.add(vocalActual); } } Collections.sort(vocales); for(Integer PosicionVocal : PosicionVocales) { char vocal = vocales.remove(0); result.setCharAt(PosicionVocal , vocal); } return result.toString(); }