2012-11-24 30 views
1

我有一個字符串格式化是這樣的:Java字符串分割與重複分離

String str = "AA.BBB..CC.DDDD...EE....F.G..H"; 

而且我想用這個作爲輸出的一個點拆分此字符串:

AA 
BBB 
.CC 
DDDD 
. 
EE 
.. 
F 
G 
.H 

當然str.split("\\.")做不行。

+0

爲什麼會出現'2 dots'在E和F之間,按順序?不應該是兩條獨立線路上的那些線路? –

+0

我認爲他想每一個開始,以點結束串。就像是 」。*。」並且,如果子字符串的開頭有多個點,他會將第一個點作爲分隔符並將其他字符串包含在字符串中。 –

+0

@DanielaMogini。在這種情況下,輸出'DDDD ... EE .... F'不遵循。 –

回答

3

這應該工作:

str.split("(?<!\\.)\\.|(?<=\\.\\.)\\.(?!\\.)") 

該字符串應該在這兩個情況下拆分:

  • .沒有被其他.
  • .之前不被.得手,並在之前連續2個.
+0

+1非常接近它。但無法得到確切的結果。在第二部分中缺少'(?<= \\。\\。)'。 :) –

+0

謝謝,這工作得很好;) – Enroy