首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不带csv的拆分()方法

不带csv的拆分()方法
EN

Stack Overflow用户
提问于 2013-09-16 14:17:56
回答 2查看 116关注 0票数 1

我需要将一个文本文件分割成不同的字段。但是,我可以控制值的划分方式,因为每个值中偶尔都有逗号,所以我不能使用CSV。导入文件的最佳方法是什么?TAB是一个更好的分隔符吗?

问题在利平科特,威廉斯和威尔金斯。那只是一个领域。

示例数据

“教育史季刊”,1748-5959,na,Wiley-Blackwell,“政治经济史”,1527-1919,0018-2702,杜克大学出版社,政治经济史-年度补编,na,失踪,历史教师,0018-2745,历史教育学会,今天历史,na,0018-2753,历史今日有限公司,家庭保健护士,na,0884-741 X,Lippincott,Williams & Wilkins,Hospitality Law,na,0889-5414,LRP出版物,Hudson Review,na,0018-702X,Hudson Review Limited,Humanist - DC,007318-99,美国人文主义者,理想主义者,na,na,0894-5373,F&W Media,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-16 14:28:04

与其硬编码分隔符,为什么不让它成为一个可配置的参数,那么如果输入发生变化或类似的情况,您可以轻松地适应,而不必重写。

如果这不是一个选项,TAB|似乎是合理的选择,而不知道输入是什么

票数 2
EN

Stack Overflow用户

发布于 2013-09-16 14:35:40

您选择任何分隔符,它都会在数据值中的某一天中断。那么,为什么不采用CSV库,以确保在需要时对分隔符进行转义,并轻松地将它们读回。

下面是您如何使用OpenCSV来做这件事

代码语言:javascript
复制
 String[] values = {"one", "two,three", "four , five"};
 CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"));
 writer.writeNext(values);
 writer.close();

CSVReader reader = new CSVReader(new FileReader("yourfile.csv"));
String [] entries;
// reading just the first line
if ((entries = reader.readNext()) != null) {
    System.out.println(entries[0] + ", " + entries[1] + ", " + entries[2]);
}
reader.close();

如果您愿意,实际上可以使用任何带有OpenCSV的自定义分隔符,比如Tab \t

代码语言:javascript
复制
 CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), '\t');

但是使用CSV也可以使您的数据文件与许多其他工具兼容。因此,这完全取决于您对数据文件(如果有的话)的兼容性要求。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18830297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档