使用空元素拆分Java中的字符串
我正在逐行读取.csv文件。例如,一行可以如下所示:使用空元素拆分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个元素。第
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文件呢?我会寻找一些库或文件