我正在研究java字符串拆分。我希望按照“。uppercase”拆分字符串(“.
”和“大写”之间有一个空格),例如:
". 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"
更多编辑:
有一个问题,通常的方式似乎将保留其中一个字符串的分隔符。但我希望在某种意义上拆分分隔符。(在我的例子中,“。[A-Z]”也被分割了)
答案 0 :(得分: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" }
对于上面的示例字符串。
答案 1 :(得分:-2)
你走了:
使用str.replaceAll(". ",".##");
str.replaceAll(".",".##");
然后使用String.split("##")
这将为您提供所需的字符串。