如何向 Java 字符串添加转义字符?
如果我有一个字符串变量:
String example = "Hello, I'm here";
我想在每个变量的前面添加一个转义字符(即实际上不是转义字符),我该怎么做?'
"
如果我有一个字符串变量:
String example = "Hello, I'm here";
我想在每个变量的前面添加一个转义字符(即实际上不是转义字符),我该怎么做?'
"
我不是在这里声称优雅,但我认为它做了你想要它做的事情(如果我错了,请纠正我):
public static void main(String[] args)
{
String example = "Hello, I'm\" here";
example = example.replaceAll("'", "\\\\'");
example = example.replaceAll("\"", "\\\\\"");
System.out.println(example);
}
输出
Hello, I\'m\" here
对于其他来这里寻求更通用的逃生解决方案的人来说,在Apache Commons文本库的基础上,你可以构建自己的逃生器。看看StringEscapeUtils的例子:
import org.apache.commons.text.translate.AggregateTranslator;
import org.apache.commons.text.translate.CharSequenceTranslator;
import org.apache.commons.text.translate.LookupTranslator;
public class CustomEscaper {
private static final CharSequenceTranslator ESCAPE_CUSTOM;
static {
final Map<CharSequence, CharSequence> escapeCustomMap = new HashMap<>();
escapeCustomMap.put("+" ,"\\+" );
escapeCustomMap.put("-" ,"\\-" );
...
escapeCustomMap.put("\\", "\\\\");
ESCAPE_CUSTOM = new AggregateTranslator(new LookupTranslator(escapeCustomMap));
}
public static final String customEscape(final String input) {
return ESCAPE_CUSTOM.translate(input);
}
}