首页 > 解决方案 > 在 JAVA 中使用 char '{' 定义字符串

问题描述

我正在尝试使用一些模式标识符定义一个常量,以便以后能够在大型字符串构造中替换它,例如在复杂的查询中。

private static String SUBSTITUTE_1 = "${substitute1}";

但是当我这样做时,编译器会抱怨在“{”字符旁边有一个数字。

我的问题是:有没有办法转义字符串中的特殊字符?

private static String SUBSTITUTE_1 = "\$\{substitute1\}";

这不起作用。

这很奇怪,因为如果我像这样定义一个字符串构建器

private static String SUBSTITUTE_1 = new StringBuilder("${substitute1}").toString();

特殊字符没有问题。

除非有一些非常明显的东西我错过了这是没有意义的。

提前致谢。

标签: javastringspecial-charactersdeclaration

解决方案


显然,Intellij 的编译器检测到我在代码中的某处使用了String.replaceAll()指令中定义的常量,并抱怨它的定义"${x}"不是有效的正则表达式。

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


推荐阅读