假设我有以下字符串str

GTM =0.2
Test =100
[DLM]
ABCDEF =5


(是的,它包含换行符)我正在尝试使用[DLM]分隔符子字符串进行拆分,如下所示:

String[] strArr = str.split("[DLM]");


为什么当我这样做时:

System.out.print(strArr[0]);


我得到以下输出:GT

当我做的时候

System.out.print(strArr[1]);


我得到=0.2

这一点有意义吗?

最佳答案

str.split("[DLM]");应该是str.split("\\[DLM\\]");

为什么?

[]special characters,并且String#split接受正则表达式。

我更喜欢的解决方案是使用Pattern#quote

str.split(Pattern.quote("[DLM]"));

quote返回给定正则表达式的String表示形式。

07-24 00:20