-1

可能重复:
Java split() 方法在最后去除空字符串?

我们有一个需求,比如读取文件内容并将数据上传到数据库。文件内容将由分隔符“|”分隔 像这样

4000|name|state|city|zip||country|||address||

对于“|”之间没有数据的某些列,我也可以有空值。例如'||' 邮编和国家之间。我的问题是 string.split("//",'|') 在空值和返回数组之间考虑空值作为元素。但尾随的'||' 不考虑地址后。如上面示例中所使用的,当我使用 string.split("//",'|') 时,我会得到一个数组大小为 11 的字符串数组元素,但我只得到 10。最后一个 null 没有被检索。任何人都可以帮助解决问题吗?

4

2 回答 2

4

只需在类中使用常规split(String, int)方法String

String line = "4000|name|state|city|zip||country|||address||";
String data[] = line.split("\\|", -1); // escaped, because of regular expressions

减一是一种约定,表示将根据需要拆分字符串。

于 2012-07-11T20:21:18.237 回答
0

Yes to use split 是显而易见的,但你也可以考虑这个选项:

为什么不直接使用 string.indexOf("|", indexToStartFrom) ?有点麻烦,但可以肯定地工作,而不必过多考虑正则表达式。


或者有商业友好的图书馆 OpenCsv http://opencsv.sourceforge.net/。阿帕奇 2.0 许可证

于 2012-07-11T20:32:14.570 回答