2009-07-10 8 views
1

J'ai une chaîne qui contient un caractère alphanumérique et un caractère spécial. Je dois remplacer chaque caractère spécial par une chaîne.Chaîne Java Remplacement des caractères spéciaux

Pour exemple,

chaîne entrée = "ja * va st & ri% n @ &" prévus o/p = "jaasteriskvaspacestandripercentagenatand"

  • = "astérisque" & = « et " % = "pourcentage" @ = "à"

grâce,

Répondre

8

Sauf si vous êtes absolument désespérée pour la performance, j'utiliser une approche très simple:

String result = input.replace("*", "asterisk") 
        .replace("%", "percentage") 
        .replace("@", "at"); // Add more to taste :) 

(Notez qu'il ya une grande différence entre replace et replaceAll - celui-ci prend une expression régulière. Il est facile d'obtenir le mauvais et voir les effets radicalement différents)

Une alternative serait quelque chose comme:

public static String replaceSpecial(String input) 
{ 
    // Output will be at least as long as input 
    StringBuilder builder = new StringBuilder(input.length()); 

    for (int i = 0; i < input.length(); i++) 
    { 
     char c = input.charAt(i); 
     switch (c) 
     { 
      case '*': builder.append("asterisk"); break; 
      case '%': builder.append("percentage"); break; 
      case '@': builder.append("at"); break; 
      default: builder.append(c); break; 
     } 
    } 
    return builder.toString(); 
Questions connexes