Java使用两种模式拆分CSV
我有这种格式的CSV,我需要根据文本分为16部分:Java使用两种模式拆分CSV,java,parsing,csv,export-to-csv,Java,Parsing,Csv,Export To Csv,我有这种格式的CSV,我需要根据文本分为16部分: "MY TEXT","EVER, OK",,,,,,,,,,"The, CARLO","DO","ALFA","OME, GA",, 我有这种方法,但当OME中出现带有逗号的case时,GA不起作用 String[] lineToMap = line.split(","); 我怎样才能控制这种情况 解决方案 我在测试工作中很好地发现了这个库:opencsv,但我在编码奇怪的符号方面有问题,比如� 取而代之的是ü,像ü,ö,等等。。我使用德语
"MY TEXT","EVER, OK",,,,,,,,,,"The, CARLO","DO","ALFA","OME, GA",,
我有这种方法,但当OME中出现带有逗号的case时,GA不起作用
String[] lineToMap = line.split(",");
我怎样才能控制这种情况
解决方案
我在测试工作中很好地发现了这个库:opencsv,但我在编码奇怪的符号方面有问题,比如� 取而代之的是ü,像ü,ö,等等。。我使用德语和法语等语言。我在用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 reader?抓住引号内的每一项。是的,但此行代表16个部分,甚至是空部分,如,,,,=空部分,但我需要采取任何方式,我相信阅读下一步将给你零,如果它是空的。如果有像2,4,5这样的数值,就不会工作了。好的,现在就可以了。我希望你的CSV不是混合的:它也不会在,,,,,,上工作,但是它会让他走得更远。不,这不是他的偏移量会被弄乱的情况。