簡體   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