1

我正在研究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]”也被拆分)

4

2 回答 2

3

您可以使用环视

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" }

对于上面的示例字符串。

于 2012-04-21T15:31:09.690 回答
-2

干得好:

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

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

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

这将为您提供所需的字符串。

检查此链接

于 2012-04-21T15:28:45.720 回答