Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Regex保留空输入_Java_Arrays_Regex_Split_Null - Fatal编程技术网

Java Regex保留空输入

Java Regex保留空输入,java,arrays,regex,split,null,Java,Arrays,Regex,Split,Null,我目前正在开发一个程序,该程序通过单词、空格和标点符号将完整的句子字符串拆分为字符串数组。但是,如果输入的句子是空的,我也希望能够让程序做一些事情。目前,我的正则表达式正在抛出任何空输入。表达方式是: String[] fragments = sentence.split("(?<=\\b|[^\\p{L}])"); 是否有方法修改此正则表达式,以便在遇到空输入时,数组将包含该空值,以便稍后在程序中处理 String[] fragments = (sentence == null) ?

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

String[] fragments = sentence.split("(?<=\\b|[^\\p{L}])");
是否有方法修改此正则表达式,以便在遇到空输入时,数组将包含该空值,以便稍后在程序中处理

String[] fragments = (sentence == null) ? null : sentence.split("(?<=\\b|[^\\p{L}])");
考虑到你的要求,这应该

如果输入为null,则返回null。 如果输入为,则返回一个包含单个项的数组。 如果不为空,则按预期返回数组。
空的是空的还是空的?两者我都要解释。所以它必须为空。在这些情况下,您期望的输出是什么?空,您必须事先捕获或捕获句子。split将抛出NPE。不是null-它是一个非null的空字符串。摆脱称之为null的习惯是很好的,因为这两件事的工作方式完全不同,将它们混为一谈可能会导致混淆。如果传入的值为null,我只是尝试让返回的值也为null,而不抛出异常,但是,我不确定这是否可能。