栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将csv文件读入数组

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将csv文件读入数组

尽管使用@ Minjun.Y提到的Apache CSV库非常好,但我尝试提供一种更接近您的代码并且可能更易于您遵循的解决方案:

import java.io.File;import java.io.FileNotFoundException;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Scanner;public class CsvParser {    public static void main(String[] args) {        String fileName= "read_ex.csv";        File file= new File(fileName);        // this gives you a 2-dimensional array of strings        List<List<String>> lines = new ArrayList<>();        Scanner inputStream;        try{ inputStream = new Scanner(file); while(inputStream.hasNext()){     String line= inputStream.next();     String[] values = line.split(",");     // this adds the currently parsed line to the 2-dimensional string array     lines.add(Arrays.asList(values)); } inputStream.close();        }catch (FileNotFoundException e) { e.printStackTrace();        }        // the following pre lets you iterate through the 2-dimensional array        int lineNo = 1;        for(List<String> line: lines) { int columnNo = 1; for (String value: line) {     System.out.println("Line " + lineNo + " Column " + columnNo + ": " + value);     columnNo++; } lineNo++;        }    }}

让我们逐步进行:

  1. 我加了3个进口:

    ArrayList
    Arrays
    List
    -你会很快对他们有什么好见。它们全部取自
    java.util
    库,该库是每个JDK都提供的标准库。

  2. Java中的每个类名称都以大写字母开头(按照惯例-也会以小写字母开头,但是您应该习惯于该惯例)-我在代码中“固定”了这个名称。

  3. 我添加了一个二维数组

    List<List<String>> lines = new ArrayList<>()
    。刚开始时,这可能看起来有些混乱,但这意味着我们创建了一个
    lines
    保存解析结果的变量。该
    List<String>
    语法手段,我们有一个泛型类型
    List
    ,有一个类型参数
    String
    -换句话说:字符串列表。整个
    List<List<String>>
    意思是我们有一个字符串列表列表,一个二维字符串数组。

  4. 随着

    lines.add(Arrays.asList(values))
    在你的
    while
    循环中,我们可以添加您解析这个二维数组中的行。根据需要
    Arrays.asList(values)
    String[]
    数组转换
    List
    为与我们的
    List<List<...>>
    类型兼容的数组。这使您的线具有可变的长度。

  5. 我添加的最后几行仅打印了二维数组的内容,应该为您提供有关如何访问此数组中值的一个很好的示例。如果您需要进一步的帮助,请查看foreach循环文档。

将此作为输入文件(

read_ex.csv
):

value_1-1,value_1-2,value_1-3,value_1-4value_2-1,value_2-2,value_2-3,value_2-4value_3-1,value_3-2,value_3-3,value_3-4value_4-1,value_4-2,value_4-3,value_4-4value_5-1,value_5-2,value_5-3,value_5-4

该程序将打印以下输出:

Line 1 Column 1: value_1-1Line 1 Column 2: value_1-2Line 1 Column 3: value_1-3Line 1 Column 4: value_1-4Line 2 Column 1: value_2-1Line 2 Column 2: value_2-2Line 2 Column 3: value_2-3Line 2 Column 4: value_2-4Line 3 Column 1: value_3-1Line 3 Column 2: value_3-2Line 3 Column 3: value_3-3Line 3 Column 4: value_3-4Line 4 Column 1: value_4-1Line 4 Column 2: value_4-2Line 4 Column 3: value_4-3Line 4 Column 4: value_4-4Line 5 Column 1: value_5-1Line 5 Column 2: value_5-2Line 5 Column 3: value_5-3Line 5 Column 4: value_5-4

希望这可以帮助 :)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507651.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号