【发布时间】:2015-11-20 15:57:48
【问题描述】:
我有这个格式的 CSV,我需要分成 16 个部分,根据文本:
"MY TEXT","EVER, OK",,,,,,,,,,"The, CARLO","DO","ALFA","OME, GA",,
我有这种方法,但是当出现“OME,GA”中带有逗号的大小写时不起作用。
String[] lineToMap = line.split(",");
我该如何控制这种情况?
解决方案
我发现了这个库:OPEN CSV,在我的测试中工作得很好,但是我在编码方面遇到了问题(奇怪的符号,比如 � 而不是 ü),以及 ü、ö 等字符。我正在使用语言比如德语和法语。我正在使用 UTF-8 进行测试,但没有成功,有什么办法解决这个问题吗?
CSVReader reader=new CSVReader(new InputStreamReader(new FileInputStream("data/test.csv"), "UTF-8"),
',', '"', 0);
//Read CSV line by line and use the string array as you want
String[] nextLine;
try {
while ((nextLine = reader.readNext()) != null) {
if (nextLine != null) {
for (String element : nextLine) {
System.out.println(element);
}
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
【问题讨论】:
-
你为什么要拆分它而不使用 CSV 阅读器?
-
抓住引号内的每一项。
-
是的,但是这一行代表 16 个部分,甚至是空的部分,例如 ,,,,,, = 空部分,但我需要采取任何方式
-
我相信如果它是空的,那么 read next 会给你 null 。仍将保留您的订单。
标签: java parsing csv export-to-csv