This question already has answers here:
String split not returning empty results
(9个答案)
6年前关闭。
我正在使用jdk 1.6,正在尝试在以下代码下运行,但无法正常工作:
但是arr的长度显示为0。
我期望arr中有6个元素,所有元素的值均为“”(空白)。
谁能解释我背后的原因?
是否有任何正则表达式可以满足我的要求?
(9个答案)
6年前关闭。
我正在使用jdk 1.6,正在尝试在以下代码下运行,但无法正常工作:
String[] arr = ",,,,,".split(",");
但是arr的长度显示为0。
我期望arr中有6个元素,所有元素的值均为“”(空白)。
谁能解释我背后的原因?
是否有任何正则表达式可以满足我的要求?
最佳答案
它正在按String#split()
文档中的说明工作。它清楚地说:
因此,结尾的空字符串不包括在结果数组中。
如果要存储空字符串,请使用重载版本-String.split(regex, limit)
:
如果n为非正数,则该模式将被尽可能多地应用,并且数组可以具有任何长度。如果n为零,则该模式将被尽可能多地应用,该数组可以具有任何长度,并且尾随的空字符串将被丢弃。
因此,您需要在此处传递一个负数限制:
String[] arr = ",,,,,".split(",", -1);
关于java - Java分割字串无法正常运作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17654281/
10-11 00:54