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因此不包括在结果数组中。