拆分 Java 字符串而不删除空值
当尝试使用 split(String regex) 方法拆分 Java 字符串时,人们可能会期望在结果数组中保留空值,特别是当它们位于字符串中的任何位置时。但是,默认情况下, split 方法会从输出数组中删除尾随的空值。
考虑以下代码:
String data = "5|6|7||8|9||"; String[] split = data.split("\|"); System.out.println(split.length);
在此示例中,我们期望在 split 中获得八个值数组,包括空字符串:[5, 6, 7, EMPTY, 8, 9, EMPTY, EMPTY]。然而,由于自动删除尾随空字符串,我们意外地最终只有六个值。
要解决此问题,我们可以利用重载的 split(String regex, int limit) 方法,其中设置了 limit为负值。这指示该方法不要删除尾随的空字符串。
String[] split = data.split("\|", -1);
通过调用重载版本,我们覆盖默认行为并保留拆分数组中的所有空值,无论其位置如何。
其他见解
需要注意的是,默认行为删除尾随空字符串仅适用于拆分过程生成这些空字符串时。这意味着如果原始输入字符串中存在空字符串(例如“”.split(anything)),它将保留在结果数组中,因为它不是由分割机制引入的。
这种粒度了解 split 方法的行为可确保开发人员在处理潜在的空值时能够更好地控制输出数组的内容。
以上是如何拆分 Java 字符串并保留所有空值(包括尾随空值)?的详细内容。更多信息请关注PHP中文网其他相关文章!