2012-04-21 69 views
1

我正在處理java字符串拆分。 「大寫‘I要拆分根據字符串(有’.‘和‘大寫’之間的空間)中,例如:’。」如何拆分Java字符串,但保留其部分內容?

". A" ". B" ". C"... 

另外,我希望保留和「大寫」,是否有任何有效的方法來做到這一點?我使用

String.split("\\.\\s") 

之前,但它會刪除「。」我用。所以這不是一個理想的解決方案。由於

樣品結果

String = This is an Egg. This is a dog. "I just come up with this example" 
String[0] = This is an Egg. 
String[1] = This is a dog. "I just come up with this example" 

更多編輯:

還有的是,通常的方式似乎將保留分隔符它的字符串的一個問題。但我想在某種意義上分裂的分隔符(在我的例子中, 「[AZ]。」 太splited)

+0

如果您提供了一個示例字符串輸入以及您期望的String []輸出標記,它將有所幫助。 – ulmangt 2012-04-21 15:26:51

+0

問題是分割函數不返回分隔符作爲返回字符串的一部分。你可以很容易地使用substring來自定義你的分割,並且手動保留字符串。 – twain249 2012-04-21 15:27:10

+0

http://stackoverflow.com/questions/275768/is-there-a-way-to-split-strings-with-string-split-and-include-the-delimiters – Serdalis 2012-04-21 15:31:54

回答

3

您可以使用lookaround

str.split("(?<=\\.\\s+)(?=\p{Lu})") 

這將分裂"First sentence. Foo bar. test"入陣

{ "First sentence. ", 
    "Foo bar. test" } 

如果你不想空間被收錄,只是把它在周圍的斷言之間:

str.split("(?<=\\.)\\s+(?=\p{Lu}") 

這將導致

{ "First sentence.", 
    "Foo bar. test" } 

對於上面的示例字符串。

+0

嗯......它留下了第二個字符串的分隔符,而我希望保存在第一個字符串的第一部分和第二個字符串的第二部分 – JLTChiu 2012-04-21 15:35:49

+0

@JLTChiu:編輯使用向後看和向後看。 – 2012-04-21 15:40:06

+0

謝謝,這真的有幫助。 – JLTChiu 2012-04-21 15:47:35

-2

在這裏你去:

使用str.replaceAll(". ",".##");

str.replaceAll(".",".##");

然後使用String.split("##")

這會給你所需的字符串。

Check this link

+0

我並沒有降低這個數字,但這與OP的要求差距很大。 – Lion 2012-04-21 15:41:31

+0

他所要求的是分割各條線。我認爲這種方法會幫助他。 – 2012-04-21 15:45:45

+0

對不起,我忘了刪除錯誤。:D – 2012-04-21 15:46:20

相關問題