Java String Замена специальных символов - PullRequest
1 голос
/ 10 июля 2009

У меня есть строка, которая содержит буквенно-цифровой и специальный символ. Мне нужно заменить каждый специальный символ на строку.

Например,

Входная строка = "ja * va st & ri% n @ &" Ожидаемый o / p = "jaasteriskvaspacestandripercentagenatand"

  • = "звездочка" & = "и" % = "процент" @ = "at"

спасибо,

Ответы [ 2 ]

8 голосов
/ 10 июля 2009

Если вы не очень нуждаетесь в производительности, я бы использовал очень простой подход:

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

(Обратите внимание, что между replace и replaceAll существует большая разница - последнее принимает регулярное выражение. Легко получить неправильное и увидеть совершенно разные эффекты!)

Альтернативой может быть что-то вроде:

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();
0 голосов
/ 10 июля 2009

Взгляните на следующие методы java.lang.String:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...