Java将string拆分为数组

我需要split()方法的帮助。 我有以下String

 String values = "0|0|0|1|||0|1|0|||"; 

我需要把值放入一个数组中。 有3个可能的string:“0”,“1”和“”

我的问题是,当我尝试使用split()

 String[] array = values.split("\\|"); 

我的值只保存到最后0.看起来像部分“|||” 被修剪。 我究竟做错了什么?

谢谢

这种行为在String.split(String regex) (强调我的)中明确logging:

此方法的工作原理与通过调用给定expression式和极限参数为零的双参数拆分方法一样。 尾随的空string因此不包括在结果数组中。

如果你想要包含空尾string,你需要使用String.split(String regex, int limit)作为第二个参数( limit )的负值:

 String[] array = values.split("\\|", -1); 

尝试这个

 String[] array = values.split("\\|",-1); 

考虑这个例子:

 public class StringSplit { public static void main(String args[]) throws Exception{ String testString = "Real|How|To

"; System.out.println (java.util.Arrays.toString(testString.split("\\|"))); // output : [Real, How, To] } }

结果不包括“|”之间的空string 分隔器。 保留空string:

 public class StringSplit { public static void main(String args[]) throws Exception{ String testString = "Real|How|To

"; System.out.println (java.util.Arrays.toString(testString.split("\\|", -1))); // output : [Real, How, To, , , ] } }

欲了解更多详情,请访问此网站: http : //www.rgagnon.com/javadetails/java-0438.html

这是预料之中的。 请参阅Javadocs进行split

 Splits this string around matches of the given regular expression. 

此方法的工作原理与通过调用给定expression式和极限参数为零的双参数拆分(java.lang.String,int)方法相同。 尾随的空string因此不包括在结果数组中。