包含换行符Java的拆分字符串

ast*_*ter 0 java string split

说我有一个以下字符串str:

GTM =0.2
Test =100
[DLM]
ABCDEF =5
Run Code Online (Sandbox Code Playgroud)

(是的,它包含换行符)我试图用[DLM]分隔符子串分割如下:

String[] strArr = str.split("[DLM]");
Run Code Online (Sandbox Code Playgroud)

为什么我这样做:

System.out.print(strArr[0]);
Run Code Online (Sandbox Code Playgroud)

我得到这个输出: GT

当我这样做的时候

System.out.print(strArr[1]);
Run Code Online (Sandbox Code Playgroud)

我明白了 =0.2

这有什么意义吗?

Mar*_*oun 5

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

为什么?

[并且]特殊字符String#split接受正则表达式.

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

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

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