Io propongo questa possibile soluzioneOriginariamente inviato da zipangulu
A mio avviso non è il massimo della eleganza , ma voi come lo implementereste in una maniera più "pulita"?
Fammi sapere.codice:import java.util.HashMap; public class Esempio { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here System.out.println(Esempio.setVocaliToUpperCase("persona")); System.out.println(Esempio.setVocaliToUpperCase("arcobaleno")); } public static String setVocaliToUpperCase(String s) { return setVocaliToUpperCase( new StringBuilder(s), 0 ); } private static String setVocaliToUpperCase(StringBuilder s, int index){ if( index == s.length() ) return s.toString(); if( VOCALI.get(s.charAt(index)) != null ) s.setCharAt(index, Character.toUpperCase(s.charAt(index))); return setVocaliToUpperCase(s, index + 1); } private final static HashMap<Character, Character> VOCALI; static { VOCALI = new HashMap<Character, Character>(); VOCALI.put('a', 'a'); VOCALI.put('e', 'e'); VOCALI.put('i', 'i'); VOCALI.put('o', 'o'); VOCALI.put('u', 'u'); } }

Rispondi quotando