Além da forma citada pelo ViniGogoy, há outras soluções utilização de expressão regular, só que é mais complexo.
Pensando rápido, a solução mais fácil que achei foi assim:
public void alternaCaseVogCons(String s){
s = s.toLowerCase(); //primeiro eu coloco todas as letras em minúsculo.
s = s.replace("a", "A");
s = s.replace("e", "E");
s = s.replace("i", "I");
s = s.replace("o", "O");
s = s.replace("u", "U");
return s;
}
Esses operadores ( &, |, ^, ~, <<, >>, >>> ) operam diretamente nos bits de valores inteiros (byte, short, int, long). Um char também pode ser representado como um inteiro, portanto é compatível. O cast para char antes da expressão pode parecer redundante, mas é necessário devido ao fato de que o resultado de uma operação bitwise é um inteiro.
[quote=Richard Mendes Madureira]Além da forma citada pelo ViniGogoy, há outras soluções utilização de expressão regular, só que é mais complexo.
Pensando rápido, a solução mais fácil que achei foi assim:
public void alternaCaseVogCons(String s){
s = s.toLowerCase(); //primeiro eu coloco todas as letras em minúsculo.
s = s.replace("a", "A");
s = s.replace("e", "E");
s = s.replace("i", "I");
s = s.replace("o", "O");
s = s.replace("u", "U");
return s;
}
outra forma seria ter 2 strings, uma em lowercase e a outra em uppercase e compor uma terceira string caracter por caracter baseado em alguma regra (vogais, por exemplo). ai ER cairia como uma luva. ou um mini strategy aonde vc chama upper ou lower apropriado.