Java 字符串特殊字符替换
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/1107979/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Java String Special character replacement
提问by Jon Skeet
I have string which contains alpahanumeric and special character. I need to replace each and every special char with some string.
我有包含字母数字和特殊字符的字符串。我需要用一些字符串替换每个特殊字符。
For eg,
例如,
Input string = "ja*va st&ri%n@&" Expected o/p = "jaasteriskvaspacestandripercentagenatand"
输入字符串 = "ja*va st&ri%n@&" 预期的 o/p = "jaasteriskvaspacestandripercentagenatand"
- = "asterisk" & = "and" % = "percentage" @ = "at"
- = "星号" & = "and" % = "百分比" @ = "at"
thanks,
谢谢,
回答by Jon Skeet
Unless you're absolutely desperate for performance, I'd use a very simple approach:
除非你对性能绝对绝望,否则我会使用一个非常简单的方法:
String result = input.replace("*", "asterisk")
.replace("%", "percentage")
.replace("@", "at"); // Add more to taste :)
(Note that there's a big difference between replaceand replaceAll- the latter takes a regular expression. It's easy to get the wrong one and see radically different effects!)
(请注意,replaceand之间有很大的不同replaceAll- 后者采用正则表达式。很容易弄错一个并看到完全不同的效果!)
An alternative would be something like:
另一种选择是:
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();
回答by Brandon E Taylor
Take a look at the following java.lang.String methods:
看看下面的 java.lang.String 方法:

