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

时间:2013-11-07 13:08:13

标签: java string split

说我有以下字符串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

这根本没有意义吗?

4 个答案:

答案 0 :(得分:5)

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

为什么?

[]special charactersString#split接受正则表达式。

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

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

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

答案 1 :(得分:1)

是的,你给的正则表达式是“用D,或L或M分开”。

你应该逃避这样的男孩:str.split(“\ [DLM \]”);

它在第一个M分裂。

答案 2 :(得分:1)

转动括号

("\\[DLM\\]")

当您在“”中使用括号时,它会将其读取为,括号内的每个字符都是分隔符。所以在你的情况下,M是一个分隔符

答案 3 :(得分:1)

使用

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

而不是

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

另外,它会与D,或L或M分开。