【问题标题】:Java, Turn Each Row of a CSV into a stringJava,将CSV的每一行转换为字符串
【发布时间】:2012-11-22 18:07:26
【问题描述】:

您好,我是使用 BlueJ 的 Java 新手。我有一个 csv 文件,其中包含表格排列中的大量数据。我试图找到一种方法来获取这些信息并找出第一行中有多少逗号分隔值,然后不管行如何,都将每个逗号分隔值放入一个数组中。

有人对如何做到这一点有任何建议吗?

提前致谢,
哈利。

【问题讨论】:

  • 我无法尝试任何事情,因为我不知道将字符串放入数组所需的代码。
  • String[] foo = new String[1]; foo[0] = "bar"; 这是基本的 Java。
  • 对不起,我是一个自学成才的初学者,有些东西有点不完整。
  • 我知道,但是从答案中复制代码可能会让你的想法奏效,但你永远不会学习 java。尝试一本书或在线课程,因为字符串和数组是绝对必要的基础知识。我不会通过解析 csv 文件开始学习 Java。

标签: java arrays csv


【解决方案1】:

由于需要支持引用值,CSV 解析可能会很棘手。我建议不要编写自己的 CSV 解析器,而是使用现有的库,例如 http://opencsv.sourceforge.net/

【讨论】:

  • 网站上的数组似乎没有任何内容,谢谢。
  • @user1843403 你应该这么说很有趣,因为我找到了within 5 seconds。 “阅读和写作”部分下的第一个主题。
  • 哦,我以为关于读写的部分只是访问它并写入 csv,而不是访问它并写入 java。但它只展示了如何将每一行放入一个数组,而不是每个值。它确实有一些关于如何跳过阅读第一行的有用信息,这很好,谢谢。
  • @user1843403 你误会了。每一行(CSV 记录)都被解析成一个String[],每个数组元素都是一个 CSV 值(字段)。
【解决方案2】:

您可以使用 Scanner 文件来读取文件的每一行,类似于:

//  create a File object by giving the filepath
File file = new File("C:\\data.csv");

try {
    // Create a new scanner class that will read the file
    Scanner scanner = new Scanner(file);

    //  while the file has lines to read
    while (scanner.hasNextLine()) {

        //  read the line to a string
        String line = scanner.nextLine();

        //  do what you need with that line
    }
//  catch the exception if no file can be found
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

【讨论】:

    【解决方案3】:

    这是另一个处理 csv 文件的库。 javacsv 代码示例为here

    【讨论】:

      猜你喜欢
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多