我正在研究java字符串分割。我希望按照“.uppercase”分割字符串(“.
”和“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]”也被分割)
最佳答案
您可以使用 lookaround :
str.split("(?<=\\.\\s+)(?=\p{Lu})")
这会将“First句子.Foo bar.test”
拆分为数组
{ "First sentence. ",
"Foo bar. test" }
如果您不想包含空格,只需将其放在环视断言之间即可:
str.split("(?<=\\.)\\s+(?=\p{Lu}")
这将导致
{ "First sentence.",
"Foo bar. test" }
对于上面的示例字符串。
关于java - 如何分割Java字符串但保留其部分内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10260277/