Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用空元素拆分Java中的字符串_Java_String_Split - Fatal编程技术网

使用空元素拆分Java中的字符串

使用空元素拆分Java中的字符串,java,string,split,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个元素。第

我正在逐行读取.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,其他所有元素都应该是空字符串


如何做到这一点?

您需要将其与
-1
参数一起使用

String[] splitted = str.split(",", -1);
这一点以前已经讨论过,例如。

但是
split
确实不应该是解析csv的方式,当字符串值包含逗号时,可能会遇到问题

23,"test,test","123.88"
split
将行拆分为4个部分:

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

我认为您不希望这样。

默认情况下,“拆分”只会删除尾部的delimeters。你可以用手机关机

String str = "9,,,1,,";
String[] parts = str.split(",", -1);
System.out.println(Arrays.toString(parts));
印刷品

[9, , , 1, , ]
-1
(或任何负数)作为要拆分的第二个参数传递:

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

”0,,,,,“
…我希望有5个元素。”5个逗号表示6个元素,如果您将它们全部保留。拆分的第一个参数是字符串,而不是字符;)谢谢你的回答。你会如何解析csv文件呢?我会寻找一些库或文件