首页 > Java > java教程 > 如何防止 Java 的 split() 方法删除空字符串?

如何防止 Java 的 split() 方法删除空字符串?

DDD
发布: 2024-12-29 13:10:15
原创
529 人浏览过

How Can I Prevent Java's `split()` Method from Removing Empty Strings?

修复 Java 字符串拆分中的空值删除

在 Java 字符串上使用 split() 方法时,您可能会遇到意外结果其中空值将从结果数组中删除。这可以在以下示例中看到:

String data = "5|6|7||8|9||";
String[] split = data.split("\|");
System.out.println(split.length);
登录后复制

在这种情况下,您期望获得一个包含 8 个值的数组:[5, 6, 7, EMPTY, 8, 9, EMPTY, EMPTY] 。但是,仅返回 6 个值。

此行为的原因是 split() 方法默认从结果数组中删除尾随的空字符串。要禁用此行为并包含空值,您可以使用 split() 的重载版本:

String[] split = data.split("\|", -1);
登录后复制

通过将 limit 参数设置为负值(在本例中为 -1),您可以指示该方法尽可能多次应用模式并包含任何尾随空字符串。

这是可能的,因为 split(regex) 内部调用 split(regex, 0),这会删除尾随空字符串字符串。通过提供负限制,您可以有效地禁用此行为并强制该方法保留所有值,包括空值。

异常:

需要注意的是,删除仅当尾随空字符串是由拆分过程创建时才有意义。对于空字符串,由于它无法进一步拆分,因此拆分它将产生一个具有单个空字符串值的数组。这是因为 split() 没有执行任何实际的拆分,因此空字符串代表原始输入,而不是拆分操作生成的空字符串。

以上是如何防止 Java 的 split() 方法删除空字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板