繁体   English   中英

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

[英]Split string containing newline characters Java

说我有以下字符串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\\\\]");

为什么?

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

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

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

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

是的,您给出的正则表达式为“用D或L或M分割”。

您应该像这样逃避那些男孩:str.split(“ \\ [DLM \\]”);

它在第一个M处被拆分。

逃脱括号

("\\[DLM\\]")

当在“”内使用方括号时,它的读法为,方括号内的每个字符都是一个定界符。 因此,在您的情况下, M是分隔符

采用

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

代替

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

否则,它将与D或L或M分开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM