【发布时间】:2014-01-14 23:58:13
【问题描述】:
所以我正在尝试对 CSV 中的大量数据进行排序。文件。该文件包含一定数量的公司信息,但有 1000 多家公司。例如,我可能需要遍历 1000 家公司,才能获得他们的年收益、当前股票价值、CEO 等。每家公司将提供相同的信息(逗号数量相同但字符长度不同),但如该文件是 CSV。公司名称和信息均以逗号分隔。
目前我正在通过信息之间的逗号将 csv 文件拆分为一个数组。但我希望能够将信息与公司一起保存,并能够指定、调用并按给定的信息和公司名称排序。但是因为我已经通过逗号分隔了信息,所以它已经在 listarray 中列出了。
那么是否可以大规模指定每 15 个逗号(或列表数组中的拆分)应重新连接在一起?这样,listarray 的每个部分都是一个独立的公司。或者是否有另一种方法来分离数据,以便信息不会被拆分?
注意:在 csv 文件中没有相似之处可以让我拆分信息,以便在每个公司信息之后拆分。
这里是其中一个 csv 文件的示例。
"Tiffany & Co. Com",964270,"+0.81","1/14/2014",88.97,93.64,"87.795 - 88.97""Asia Pacific Fund",20700,"+0.04","1/14/2014",10.23,11.37,"10.19 - 10.23""Anadarko Petroleu",4236380,"+2.47","1/14/2014",80.99,98.47,"78.40 - 80.99""Proto Labs, Inc. ",451984,"-0.18","1/14/2014",73.83,89.97,"71.00 - 73.83""Zuoan Fashion Lim",201560,"-0.02","1/14/2014",1.79,3.62,"1.71 - 1.79"
【问题讨论】:
-
发布样本数据。听起来您需要两个循环来填充二维数组。一个外循环遍历所有数据(所有公司),一个内循环用 15 条数据填充数组。
-
您可以使用分割线的第一个索引作为Map中的键,然后为剩余数据保留一个信息对象列表(假设公司名称是第一个索引)每行)。
-
如果这不是你需要自己编写的学校练习,请考虑使用诸如 opencsv 之类的库。它不仅可以让您的任务更轻松,还可以处理您可能没有想到的事情,例如转义逗号(例如,如果公司名称是“Foo, Inc.”)。
-
这个问题表明了对 Java 是一种面向 Object 的语言这一点的根本误解。使用库将您的数据读入
Company对象的集合,然后按照您的意愿使用它们。您甚至可以将它们存储到数据库中并进行查询。 -
我是面向对象语言 boris 的新手。我试图将信息放入公司对象中,它只是将数据分开以便能够将其放入对象中。看起来 dana 建议了一个可能很好的库来执行此操作。
标签: java