在JAVA

时间:2018-10-12 11:24:47

标签: java string special-characters declaration

我正在尝试使用一些模式标识符定义一个常量,以便以后可以在大型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();

特殊字符没有问题。

除非我确实确实缺少某些东西,否则这是没有道理的。

谢谢。

1 个答案:

答案 0 :(得分:2)

很明显,Intellij的编译器检测到我在String.replaceAll()指令中使用已定义常量的代码中某处,并抱怨其定义,因为"${x}"不是有效的Regex表达式。

解决方案更改为String.replace()