Java 如何按行然后按分号拆分CSV文件

Java 如何按行然后按分号拆分CSV文件,java,csv,split,filereader,Java,Csv,Split,Filereader,大家好,我有一个CSV文件,如下所示: ban;frst_name;last_nam;adrs_provnc;accnt_type_id.... ban1;frst_name1;last_nam1;adrs_provnc1;accnt_type_id.... .... 我想把这个文件放到一个数据类型中,在这个数据类型中,我可以访问everyline的每一行以及每个字段。示例:如果我想要文件的第二行,那么我应该-- 如果我想要第二行的第二个字段,我应该有: "frst_name1" 是否

大家好,我有一个CSV文件,如下所示:

 ban;frst_name;last_nam;adrs_provnc;accnt_type_id....
 ban1;frst_name1;last_nam1;adrs_provnc1;accnt_type_id....
 ....
我想把这个文件放到一个数据类型中,在这个数据类型中,我可以访问everyline的每一行以及每个字段。示例:如果我想要文件的第二行,那么我应该--

如果我想要第二行的第二个字段,我应该有:

"frst_name1"
是否有一种方法可以做到这一点,通过它我可以访问行和字段

这是我编的代码

 public class cvsreader {    
List<List<String>> cust_data = new ArrayList<List<String>>(); // declared a list of list   
public void run() throws IOException {

    String cust_line = "";

    String delimeter = ";";

    String cust_inputfile = "C:/input.csv"; // input file


    BufferedReader cust_br = new BufferedReader(new FileReader(cust_inputfile));

    while ((cust_line = cust_br.readLine()) != null){

        cust_data = Arrays.asList(Arrays.asList(cust_line.split(delimeter))); // stored data from cust_line(string) to cust_data (list of list, so did type casting from list to array)
        System.out.println(cust_data);

        }

    }
}
现在如果我打印

System.out.println(cust_data.get(0));
它给出这样的输出-

[ban,frst_name,last_nam,adrs_provnc,accnt_type_id....]    
[ban1,frst_name1,last_nam1,adrs_provnc1,accnt_type_id....]    
[....                                                    ]  
一个sqaure大括号已经减少,但它应该只给出第一行

[ban,frst_name,last_nam,adrs_provnc,accnt_type_id....]
现在如果我打印

System.out.println(cust_data.get(0).get(0));
它会打印下面的内容

[[ban,frst_name,last_nam,adrs_provnc,accnt_type_id....]]
[[ban1,frst_name1,last_nam1,adrs_provnc1,accnt_type_id....]]    
[[....                                                    ]]
ban    
ban1  
没有方括号,但它应该只打印第一行的第一个字段,即-
禁令


如果有人现在能理解为了得到想要的结果实际上必须做些什么,请提出建议。

逐行阅读以下答案:

以下是拆分字符串的答案:

本页提供解析CSV的完整示例:


所有代码都是从其他SO线程粘贴的。

让我们看看一些代码。我没有任何代码,我想知道如何执行此操作。似乎每行代表一个用户、一个帐户或类似的内容。所以你只需要一份清单。要访问第三个用户的名字,可以使用
list.get(2).getFirstName()
。谷歌搜索“Java CSV解析器”,找到一个能够解析CSV的库,并使用它解析文件,并将每一行转换为用户。搜索
Java parse CSV
@Anant,通常通过显示您尝试的内容,您会在此处获得更好的结果。从描述中并不总是清楚约束和要求是什么,因此这里不是为您做功课的地方。无论如何,带有链接的答案是你的新起点。不要只发布URL作为答案,在答案中包含URL的相关信息,以防URL更改或不再有效。抱歉,我在想,既然是这样,URL可能不会更改,并指向相关的讨论,而不是我断章取义。谢谢大家,我们将搜索CSV解析器,并让您知道我使用该解析器的位置。@JensB您给出的URL有一个读取CSV文件的示例,该文件按半圆分割并打印其数据。我想一行一行地分割我的文件,然后一个字段一个字段地分割。
ban    
ban1  
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
    String line;
    while ((line = br.readLine()) != null) {
       // process the line.
    }
}
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556