解析Java中的CSV格式字符串

时间:2018-02-15 13:26:00

标签: java csv

我想解析这个CSV字符串:

DEV-82,2d155089e1b01eb,AYNF Terminal 2,ENABLED,PAN_FZN1_AD5,SIT-4,MetesCronos,DGP-83,AllYouNeedFresh,20170902042148,356927070012616,!,!

在JAVA中写出一个CSV:

2d155089e1b01eb,SIT-4,MetesCronos,356927070012616

有没有办法从琴弦中取出第n个位置?

但是我的字符串不只是一行,有时是50行,有时是75行等。

我的Stringresult是:

DEV-1,77EC0067C8A1BA6462FCA25F8B1DFBE289F6A3EE,6110 WM,DISABLED,HON_6110_WM6,SIT-3,letesena,DGP-1,6110WM,,,,
DEV-2,01B406234550B1A688000050BF7A60E2,MC3090 CE,DISABLED,MOT_MC3000_CE50,SIT-3,Letesena,DGP-2,MC3090,,,,
DEV-37,23B8EB959C4004D373EAB6A9ACA7173DE15266F1,MC67 AlexH,ENABLED,MOT_MC67_WM6,SIT-4,Letesonos,DGP-32,MCL-Client_MC67,20170915220217,352344052521784,!,!
DEV-45 ...

我想把第2,第5和第11列的每一行写下来并写一个CSV:

77EC0067C8A1BA6462FCA25F8B1DFBE289F6A3EE,SIT-3,6110WM
01B406234550B1A688000050BF7A60E2,SIT-3,MC3090
23B8EB959C4004D373EAB6A9ACA7173DE15266F1,SIT-4,MCL-Client_MC67 

2 个答案:

答案 0 :(得分:1)

使用String.split(分隔符),然后从结果数组中获取第n个条目。

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)

答案 1 :(得分:0)

使用String.split(",")然后从结果数组中获取第n个,或者更好地使用已经处理了大量角落情况的工具(例如,CSV行中没有足够的部分; UTF-8物料清单)。这样的工具例如是Commons CSV