Saudaçõesa amigos,
Estou fazendo uma impressão em matricial e preciso substituir os caracteres acentuados pelos seus respectivos sem acento.
Testei destas duas maneiras:
[code]
/** */
private final char[] comAcento =
“ãâàáäêèéëîìíïõôòóöûúùüÃÂÀÁÄÊÈÉËÎÌÍÏÕÔÒÓÖÛÙÚÜçÇñÑ”.toCharArray();
/** */
private final char[] semAcento =
"aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIIOOOOOUUUUcCnN".toCharArray();
public String convertToASCII(String text) {
for (int i = 0; i < comAcento.length; i++) {
text = text.replace(comAcento[i], semAcento[i]);
}
return text;
}[/code]
public String convertToASCII2(String text) {
return text.replaceAll("[ãâàáä]", "a")
.replaceAll("[êèéë]", "e")
.replaceAll("[îìíï]", "i")
.replaceAll("[õôòóö]", "o")
.replaceAll("[ûúùü]", "u")
.replaceAll("[ÃÂÀÁÄ]", "A")
.replaceAll("[ÊÈÉË]", "E")
.replaceAll("[ÎÌÍÏ]", "I")
.replaceAll("[ÕÔÒÓÖ]", "O")
.replaceAll("[ÛÙÚÜ]", "U")
.replace('ç', 'c')
.replace('Ç', 'C')
.replace('ñ', 'n')
.replace('Ñ', 'N');
}
O segundo método parece ser um milésimo mais rápido que o primeiro para uma string de 48 caracteres.
Existe alguma maneira melhor de fazer isto?
Se eu tiver que alterar isto de um arquivo seria melhor ler partes do arquivo, converter e gravar um arquivo novo?
abraço