实际需要解析的csv中很多都是从excel中转过来的,数据中本身包含了逗号的数据导致split的过程中发现数据对不上,因此,基于这种特性,重新写了一个csv数据的分割方法:
实现代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
public static String[] split(String line) { List<String> list = new ArrayList<>(); int start = 0 ; int end = - 1 ; while ( true ) { start = end + 1 ; if (line.charAt(start) == '\"' ) { end = line.indexOf( "\"" , start ) + 1 ; } else { end = line.indexOf( "," , start ); } if (end < 0 ) { //最后了 end = line.length() ; } String p1 = line.substring(start, end); list.add(p1); if (end >= line.length() - 1 ) { break ; } } return list.toArray( new String[ 0 ]) ; } |
利用的特性为:excel转储csv的时候,如果列值包含逗号会用双引号括起来。
以上就是java 分割csv数据的简单实例,如有疑问大家可以到本站留言,讨论,或者到本站搜索相关内容,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://jjxliu306.iteye.com/blog/2383856