【问题标题】:How to get information from a CSV file in Java如何从 Java 中的 CSV 文件中获取信息
【发布时间】:2021-08-29 17:44:52
【问题描述】:

我有一个 .CSV 文件,其中包含 [ID]、[NAME]、[LASTNAME]、[EMAIL]、[GENDER] 的行。有 1000 个条目。

在这五行中,我必须:

  1. 查找列表中的总人数。 (使用 for 循环?)
  2. 显示前 10 个姓名(姓名、姓氏)。
  3. 显示 3 个随机名称。
  4. 仅显示电子邮件。 (可以使用当前代码)
  5. 显示他们姓氏的首字母。
  6. 在他们的姓氏后面添加一个随机数字。

有人可以举个例子吗?

作为一名 Java 初学者,我似乎真的找不到答案。我到处搜索,我想我快疯了。

我已将 .csv 文件导入我的 java eclipse,使用以下代码,目前它只显示 ID。

package test;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class test111 {
public static void main(String[] args) {
    String fileName="test.csv";
    File file = new File(fileName);
    try {
        Scanner inputStream = new Scanner(file);
        inputStream.next();
        while (inputStream.hasNext()) {
            String data = inputStream.next();
            String[] values = data.split(",");
            
            System.out.println(values[0]);
            
        }
        inputStream.close();
        System.out.println("e");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        


            
    }
}
}

【问题讨论】:

  • 是的,它正在打印数组的第一个元素。这就是我没有想法的地方..
  • 也许你可以找到一些库来处理 cvs 文件?

标签: java arrays string csv export-to-csv


【解决方案1】:

为了获取每个值,您必须执行以下操作:

int id = Integer.parseInt(values[0]);
String name = values[1];
String lastName = values[2];
String email = values[3];
String gender = values[4];

【讨论】:

    【解决方案2】:

    你的课程告诉你为什么不阅读、研究和理解代码就不能盲目地复制代码。

    从您自己的代码中查看第 15 行。你觉得这里发生了什么?

    String[] values = data.split(",");
    

    您已将 CSV 文件中的一行读入名为 data 的字段中,现在您正在调用 .split 方法,并使用逗号作为参数将该行分解为找到逗号的标记。这些标记被放入名为values 的数组的单元格中。

    为什么你只得到你的 ID 属性?看这一行:

    System.out.println(values[0]);
    

    我们刚刚确定所有标记都已放置在一个名为values 的数组中。让我们看看您提供的属性键:

    [ID]、[NAME]、[LASTNAME]、[EMAIL]、[GENDER]

    嗯...如果打印 values[0] 给我们 ID,我想知道如果我们... 哦,我不知道... 可能会尝试从数组中的不同元素打印?

    试试:

    System.out.println(values[1]);
    System.out.println(values[2]);
    System.out.println(values[3]);
    System.out.println(values[4]);
    

    看看你得到了什么。

    编码是为了学习而尝试事物。知识不会神奇地嵌入你的脑海中。要学习一些东西,你必须反复练习,这样做,你会犯错误——这就是它的方式。不要轻易放弃。

    【讨论】:

    • 非常感谢您的评论。我想我一定是以某种方式让故事变得混乱。我可以打印出所有的“值”。但由于某种原因,我无法计算每一行中的值(使用 .length()),我似乎只获得了 ID 的完整列表。我只需要总数或最后一个.. 基本上,我需要一种在打印时不显示所有表格的方法,而是只显示前 10 个或 3 个随机数。
    • 您无法以这种方式获得长度,因为.length() 用于 ArrayList。对于数组,您使用 array.length 其中数组是您的数组的名称。看?没有括号。现在看来您要问第二个问题,这意味着您应该将其作为第二个问题发布。如果我的回答满足第一个问题,请单击它旁边的复选标记,让人们知道什么有效,然后发布您的下一个问题。
    猜你喜欢
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 2021-12-04
    相关资源
    最近更新 更多