У меня есть строка, которая содержит альпаханумерный и специальный символ. Мне нужно заменить каждую специальную char на некоторую строку.
Например,
Входная строка = "ja * va st & ri% n @&" Ожидаемый o/p = "jaasteriskvaspacestandripercentagenatand"
спасибо,
Если вы не отчаянно нуждаетесь в производительности, я бы использовал очень простой подход:
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();
Взгляните на следующие методы java.lang.String: