java - 正则表达式保留空输入

标签 java arrays regex split null

我目前正在开发一个程序,该程序通过单词、空格和标点符号将完整的句子字符串拆分为字符串数组。但是,如果输入的句子为空,我也希望能够使程序执行某些操作。目前我的正则表达式会抛出任何空输入。其表达式为:

String[] fragments = sentence.split("(?<=\\b|[^\\p{L}])");

有没有办法修改这个正则表达式,以便在遇到空输入时,数组将包含该空值,以便稍后在程序中对其进行处理?

最佳答案

String[] fragments = (sentence == null) ? null : sentence.split("(?<=\\b|[^\\p{L}])");

根据您的要求,这应该

  • 如果输入为 null,则返回 null
  • 如果输入为“”,则返回包含单个条目“”的数组。
  • 如果不是“”也不是null,则按预期返回数组。

关于java - 正则表达式保留空输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46241009/

相关文章:

arrays - 如果不可能,Ruby 哈希挖掘或返回 nil

将字符数组转换为字符串使用 C

javascript - 正则表达式:两个斜杠之间的任何字符串都以定义的字符串为前缀

java - 如何在intellij idea中启用从源滚动到外部库?

java - 在网格布局中,Jbutton 大小不会随着 java 中 setBounds() 的使用而改变

java - 有什么可以警告我不要使用 type.equals(incompatibleType) 吗?

java - 处理程序 - postDelayed 执行两次

ios - 在 Swift 中使用 "Map"创建两个数组的超集

regex - sed 从字符串中提取版本号(只有版本,没有其他数字)

python - 在python中拆分键值字符串并将其移动到df列中