Originariamente inviato da zipangulu
A mio avviso non è il massimo della eleganza , ma voi come lo implementereste in una maniera più "pulita"?
Io propongo questa possibile soluzione
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');
}
}
Fammi sapere.