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,而不抛出异常,但是,我不确定这是否可能。