[英]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.