我正在尝试使用一些模式标识符定义一个常量,以便以后可以在大型String构造中(例如在复杂的Querie中)替换它。
private static String SUBSTITUTE_1 = "${substitute1}";
但是,当我这样做时,编译器抱怨期望在'{'char旁边有一个数字。
我的问题是:有没有一种方法可以转义字符串中的特殊字符?
private static String SUBSTITUTE_1 = "\$\{substitute1\}";
这不起作用。
这很奇怪,因为如果我像这样定义String构建器
private static String SUBSTITUTE_1 = new StringBuilder("${substitute1}").toString();
特殊字符没有问题。
除非我确实确实缺少某些东西,否则这是没有道理的。
谢谢。
答案 0 :(得分:2)
很明显,Intellij的编译器检测到我在String.replaceAll()
指令中使用已定义常量的代码中某处,并抱怨其定义,因为"${x}"
不是有效的Regex表达式。
解决方案更改为String.replace()
。