Substituir caracteres acentuados em uma string

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

Expressão Regular de uma olhada nesse tutorial:

http://www.guj.com.br/java.tutorial.artigo.1.1.guj

Nesse exemplo só aceita numeros e letras sem acentuação:

public String removeCaracters(String entrada){
	     Pattern numericos = Pattern.compile("[0-9a-z]",Pattern.CASE_INSENSITIVE);
	     Matcher encaixe = numericos.matcher(entrada);
	     StringBuffer saida = new StringBuffer();
	     while(encaixe.find())
	        saida.append(encaixe.group());
	     return saida.toString();
}

Valeu amigo, vou dar uma estudada nesse java.util.regex.