使用空元素

时间:2016-02-11 14:41:30

标签: java string split

我正在逐行读取.csv文件。一行可以看例如下:String str = "10,1,,,,"

现在我想根据“,”进行拆分:String[] splitted = str.split(",");现在的问题是,这只会产生2个元素,但我希望有5个元素,前两个元素应该包含10个和1个其他3应该只是一个空字符串。

另一个例子是String str = "0,,,,,",它只产生一个元素,但我希望有5个元素。

最后一个例子是String str = "9,,,1,,",它给出了2个元素(9和1),但我希望有5个元素。第一个元素应为9,第四个元素应为1,所有其他元素应为空字符串。

如何做到这一点?

3 个答案:

答案 0 :(得分:5)

您需要将其与-1参数

一起使用
String[] splitted = str.split(",", -1);

之前已经讨论过,例如, Java: String split(): I want it to include the empty strings at the end

split真的不应该解析csv的方式,当你有一个包含逗号的字符串值时,你可能会遇到问题

23,"test,test","123.88"

split会将行拆分为4个部分:

[23, "test, test", "123.88"]

我不认为你想要那个。

答案 1 :(得分:3)

默认情况下,

split仅删除尾随分隔符。您可以使用

关闭此功能
String str = "9,,,1,,";
String[] parts = str.split(",", -1);
System.out.println(Arrays.toString(parts));

打印

[9, , , 1, , ]

答案 2 :(得分:3)

-1(或任何负数,实际上)作为第二个参数进行分割:

System.out.println("0,,,,,".split(",", -1).length); // Prints 6.