Galera estou com um problema … e o seguinte… tenho um metodo q substitui as vogais por exemplo … se eu passar á,à,ã… ele substitui por A, se eu passar ú,ù ele troca pro U… e assim para todas as vogais… mas o problema e o seguinte… se eu passar o a letra A ele passa norma pois nao precisa alterar agora se eu passar o á ele me retorna o seguinte Aí nao sei pq mas logo no comeco da funcao eu sou um length e qdo e passado o á ele conta como se a String tivesse tamanho 2 e nao 1… sendo que se eu passar a letra A ele vai normal. outra coisa… qdo eu passo a letra Á no charAt ele me traz a primeira vez o simbolo |- e na segunda o simbolo í sendo q ele nao era para entra nessa segunda vez… e outra coisa… pelo q eu vi o unicode trabalha com hexadecima… tem como eu recuperar esse valor de uma letra??
public static String substituiVogais(String _palavra){
int _contador;
int _valorAscii;
char _caracter;
String _result = "";
int _totalPalavra;
_totalPalavra = _palavra.length();
for(_contador = 0; _contador <= (_totalPalavra - 1); _contador++){
_caracter = _palavra.charAt(_contador);
_valorAscii = (int) _caracter;
if(!( (_valorAscii > 96) && (_valorAscii < 123) )){
if(((_valorAscii > 191) && (_valorAscii < 198)) || ((_valorAscii > 223) && (_valorAscii < 230))){
_caracter = 'A';
}
else if(((_valorAscii > 199) && (_valorAscii < 204)) || ((_valorAscii > 231) && (_valorAscii < 236))){
_caracter = 'E';
}
else if(((_valorAscii > 204) && (_valorAscii <208)) || ((_valorAscii > 235) && (_valorAscii < 240)) || ((_valorAscii ==121) && (_valorAscii == 89))){
_caracter = 'I';
}
else if(((_valorAscii > 209) && (_valorAscii < 215)) || ((_valorAscii > 241) && (_valorAscii < 247))){
_caracter = 'O';
}
else if(((_valorAscii > 216) && (_valorAscii < 221)) || ((_valorAscii > 248) && (_valorAscii < 253))){
_caracter = 'U';
}
}
if(((_valorAscii > 64) || (_valorAscii < 91)) || (_caracter == ' ')){
_result = _result + _caracter;
}
}
System.out.println(_result);
return _result;
}
public static void main(String args[]){
substituiVogais("ã");
}