Il problema è questo:

Si scriva un metodo ricorsivo
static String vocaliMaiuscole(String s)
che restituisce la stringa ottenuta da "s" mettendo tutte le vocali in maiuscolo. Esempio: con la stringa "Persona" restituisce la stringa "PErsOnA".

Secondo il ragionamento della ricorsività questa implementazione può andar bene?O meglio , lui opera ricorsivamente ma come vi sembra?

codice:
private final static String vocali = "aeiou";

	public static String vocaliMaiuscole (String s) {
		String stringa="";
		if(s.length() == 1){
			stringa+=(vocali.indexOf (s.charAt (0)) != -1) ? (s.charAt (0)+"").toUpperCase () : s.charAt (0);
		}else {
			stringa+=(vocali.indexOf (s.charAt (0)) != -1) ? (s.charAt (0)+"").toUpperCase () : s.charAt (0);
			stringa+=vocaliMaiuscole (s.substring (1));
		}
		return stringa;
	}
A mio avviso non è il massimo della eleganza , ma voi come lo implementereste in una maniera più "pulita"?