【发布时间】:2017-09-15 13:40:27
【问题描述】:
我目前正在开发一个程序,该程序通过单词、空格和标点符号将完整的句子字符串拆分为字符串数组。但是,如果输入的句子为空,我也希望能够使程序执行某些操作。目前,我拥有的正则表达式正在丢弃任何空输入。表达式为:
String[] fragments = sentence.split("(?<=\\b|[^\\p{L}])");
有没有办法修改这个正则表达式,以便在遇到空输入时,数组将包含该空值,以便稍后在程序中进行处理?
【问题讨论】:
-
空如
null或""? -
我必须同时考虑这两者。所以它必须为空。
-
在这些情况下您的预期输出是什么?
null你必须提前捕捉,否则 sentence.split 会抛出 NPE。 -
""不为空——它是一个非空的空字符串。改掉称它为 null 的习惯是件好事,因为这两个东西的工作方式截然不同,将它们混为一谈会导致混乱。 -
如果传入的值为 null,我只是想在不引发异常的情况下让返回的值也为 null,但是,我不确定这是否可能。
标签: java arrays regex split null