String[] parts = pptValue.split("{");
在我的pptValue
:
pptValue = EnvWDI{env}{client}
我的错误:
Caught: java.util.regex.PatternSyntaxException: Illegal repetition
{
java.util.regex.PatternSyntaxException: Illegal repetition
{
at java_lang_String$split.call(Unknown Source)
答案 0 :(得分:3)
在正则表达式中使用时,{
字符具有特殊含义。
传递给String.split
的字符串被解析为正则表达式,您必须转义具有特殊含义的字符,例如"\\{"
。
反斜杠字符用于转义特殊字符。由于\
本身在字符串中具有特殊含义,因此它也必须被转义,因此是双反斜杠。
答案 1 :(得分:2)
我认为你需要摆脱大括号,就像在"\\{"
中一样。
在有关转义字符的部分中查看Pattern
的文档。幕后,split
使用Pattern
。
答案 2 :(得分:1)
您需要转义{
,因为它用于量化重复,请尝试:
public static void main(String[] args) {
String pptValue = "foo{bar";
String[] parts = pptValue.split("\\{");
System.out.println(parts.length);
for (int i = 0; i < parts.length; i++){
System.out.println(parts[i]);
}
}