Ce qui est un moyen efficace pour remplacer plusieurs caractères dans une chaîne de caractères?

La manipulation des chaînes en Java est quelque chose que je suis en train d'apprendre à bien faire. Actuellement, je veux prendre dans une chaîne de caractères et de les remplacer tous les caractères, je trouve.

Ici est mon inefficace (et un peu stupide de l'OMI) de la fonction. Il a été écrit simplement.

public String convertWord(String word)
{
    return word.toLowerCase().replace('á', 'a')
                             .replace('é', 'e')
                             .replace('í', 'i')
                             .replace('ú', 'u')
                             .replace('ý', 'y')
                             .replace('ð', 'd')
                             .replace('ó', 'o')
                             .replace('ö', 'o')
                             .replaceAll("[-]", "")
                             .replaceAll("[.]", "")
                             .replaceAll("[/]", "")
                             .replaceAll("[æ]", "ae")
                             .replaceAll("[þ]", "th");
}

J'ai couru à 1.000.000 s'exécute, et il a pris 8182ms. Alors, comment dois-je procéder dans l'évolution de cette fonction pour la rendre plus efficace?

Solution trouvée:

La conversion de la fonction de cette

public String convertWord(String word)
{
    StringBuilder sb = new StringBuilder();

    char[] charArr = word.toLowerCase().toCharArray();

    for(int i = 0; i < charArr.length; i++)
    {
        //Single character case
        if(charArr[i] == 'á')
        {
            sb.append('a');
        }
        //Char to two characters
        else if(charArr[i] == 'þ')
        {
            sb.append("th");
        }
        //Remove
        else if(charArr[i] == '-')
        {
        }
        //Base case
        else
        {   
            sb.append(word.charAt(i));
        }
    }

    return sb.toString();
}

L'exécution de cette fonction de 1.000.000 fois prend 518ms. Donc, je pense que c'est assez efficace. Merci pour l'aide les gars 🙂

InformationsquelleAutor | 2011-03-29