【发布时间】:2020-12-26 13:46:03
【问题描述】:
我想在标点符号和空格中拆分字符串,但保留标点符号。例
String example = "How are you? I am fine!"
我想要结果
["How","are","you","?","I","am","fine","!"]
但我得到了
["how"," ","are"," ","you"," ","?"," ","i"," ","am"," ","fine"," ","!"].
我用的是example.toLowerCase().trim().split("(?<=\\b|[^\\p{L}])");
【问题讨论】:
-
你为什么要
toLowerCase()?这已经弄乱了您的预期结果。为什么trim()?此外,您可以简单地迭代您的结果数组并摆脱isBlank()的所有内容。还是您需要通过单个split调用来完成? -
@Zabuzard toLowerCase 并不是那么必要,它究竟是如何弄乱结果的?!我试过有没有它,我仍然得到相同的结果!我尝试遍历数组并删除所有未使用的空间,但我仍然没有得到我想要的结果,因此我宁愿在单个拆分调用中完成它或使用 Stringtokenizer
标签: java arrays regex string split