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