将“逗号”列表的数据库拆分为单独的数组(JAVA 1.7)

时间:2018-07-18 17:26:08

标签: java arrays database parsing

我正在做一个数据分析项目,我需要将一个非表(还不是一个数组)数据库拆分成多个数组。该数据库如下所示:

57, Federal-gov, 337895, Bachelors, 13, Married-civ-spouse, Prof-specialty, Husband, Black, Male, 0, 0, 40, United-States, >50K
38, Private, 28887, 11th, 7, Married-civ-spouse, Sales, Husband, White, Male, 0, 0, 50, United-States, <=50K
41, State-gov, 101603, Assoc-voc, 11, Married-civ-spouse, Craft-repair, Husband, White, Male, 0, 0, 40, United-States, <=50K

如您所见,不同的变量/列由逗号分隔。我想知道将数据拆分为单独的数组(每个列/变量成为单独的数组条目)的最有效方法是什么。该代码应接收此数据库,然后遍历每一行并使用适当的值设置一个新的数组条目。现在,我可以使用字符串数组。同样,我也想从数据库中删除信息不完整的行(缺少以?表示的数据)。任何帮助将不胜感激 :)。如果您有任何问题随时问。我正在使用Java 1.7。谢谢!

有关我正在使用的数据库的更多信息(如果需要):https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.names

1 个答案:

答案 0 :(得分:4)

我绝对不会在此处发布完整答案,因为那样的话,这将是please do it for me。我将向您展示解决该问题并分享情侣链接以开始使用的算法。

  1. 逐行读取文件。 How to read line by line by using FileReader
  2. 用逗号分隔行。 How to split a comma-separated string?
  3. 将每个字段映射到一个保存数据并具有适当类型(POJO)的类。您需要访问数组的每个位置并映射该字段并将其转换为正确的类型。 https://en.wikipedia.org/wiki/Plain_old_Java_object
  4. 将POJO添加到ArrayList或任何其他类型的列表中,或通过其ID将其映射到哈希图中。
  5. 调试,调试和调试。考虑所有可能出错的地方...文件的格式可能不正确。如果值包含逗号怎么办?如果要将数据存储到HashMap中,并且文件上有重复的ID,该怎么办?如果CSV中的类型不一致,该怎么办?如果...怎么办?

祝你好运!