实际需要解析的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