Trocar caracteres em uma string

4 respostas
S

Ola pessoal,
preciso trocar caracteres acentuados pelo seu correspondente em uma string que é o nome de um arquivo. Existe algum metodo de java.lang.string? Alguem tem ideia de fazer isto?

4 Respostas

S

para trocar os caracteres existe o método replace(x, y), onde x é o caracter a ser trocado e y o caracter que substituirá x, então para trocar todos os caracteres “á” seria assim:
string.replaceAll(“á”, “a”);

use este método para todos os caracteres que você deseja trocar que dará certo.

O

Kra, não sei c em Java tem algo específico para fazer essa troca… eu acho que não tem… mas vc pode tentar usar a seguinte lógica…

public class Replace {

private static String find = “áéíóú”;
private static String replaceFor = “aeiou”;

public static void main(String[] args) {

String s = Remédio;

System.out.println(replace(s));

}
public static String replace(String s) {

for (int i=0;i < find.length();i++) {

s = s.replace(find.charAt(i),replaceFor.charAt(i));

}

return s;

}

}

É meio lusitano, mas…

S

Obrigado pela dica.

Ficou assim:

File ftmp = new File("./tmp");

if(!ftmp.exists())

ftmp.mkdir();

int a = dir_nome.lastIndexOf("/");

novo_nome = dir_nome.substring(a).toLowerCase();
String aa[] = {"ç","á","à","ã","â","é","è","ê","í","ì","ó","ò","õ","ô","ú","ù"," "};
                String bb[] = {"c","a","a","a","a","e","e","e","i","i","o","o","o","o","u","u","_"};
                int ab;
                for (ab = 0; ab &lt;= 16; ab++)
                {
                    novo_nome = novo_nome.replaceAll(aa[ab], bb[ab]);
                }
D

nao tem como fazer isso usando expressoes regulares?!?

Criado 8 de novembro de 2004
Ultima resposta 8 de nov. de 2004
Respostas 4
Participantes 4