【问题标题】:Convert a text file into an arraylist将文本文件转换为数组列表
【发布时间】:2016-04-14 08:17:21
【问题描述】:

我想提取保存在文本文件中的信息并将其转换为 ArrayList。该文件由一个数字组成,以区分行和字符串属性。问题是我不知道如何将 encuestas 转换为数组,并且它说当我尝试 listas.add 时变量可能尚未初始化。

public Lista Cargar_Listas(){ 
    ArrayList <Militante> militantes= new ArrayList <>();
    Lista lista = new Lista(militantes);

    try{
        FileReader fr = new FileReader("archivo.txt");
        BufferedReader entrada = new BufferedReader(fr);

        int j=0;
        String s;
        String nombrem, apellidos, profesion, siglas_partido, carne;
        int edad;
        char genero;
        double cuota;
        String[] encuesta;

        while((s=entrada.readLine())!=null){

            if(j==0) nombrem=s;
            if(j==1) apellidos=s;
            if(j==2) edad=Integer.parseInt(s);
            if(j==3) profesion=s;
            if(j==4) genero=s.charAt(0);
            if(j==5) siglas_partido=s;
            if(j==6) encuesta={s};
            if(j==7) cuota=Double.parseDouble(s);               
            if(j==8) carne=s;


            j++; 

           if(j>8){
               j=0;
               lista.add(new Militante(nombrem, apellidos, edad, profesion, genero, siglas_partido, encuesta, cuota, carne));
           }
        }
        entrada.close();
    }
    catch(java.io.FileNotFoundException fnfex){
       System.out.println("Archivo no encontrado: "+fnfex);}
    catch(java.io.IOException ioex){}
    return lista;
}

【问题讨论】:

  • Lista是什么类?为什么不能使用militantes.add()
  • 请同时发布一些示例数据。
  • @cricket_007 Lista 是 ArrayList elementos。我也尝试过 milanantes.add() 但它不起作用
  • 如果它抱怨未初始化的变量,如果你确定它们以后会被覆盖/初始化,你可以预先初始化它们。 (即String nombrem = ""; String apellidos = ""; ..
  • @AndrewMcCoist 这只是一个普通的添加,到目前为止我还没有覆盖它

标签: java arrays file arraylist


【解决方案1】:

编辑: 输入的第七行是什么样子的:是逗号分隔的行吗? 使用:

encuesta = s.split(",");

或者,您的问题可能出在 Militante 班上。 它可能包含一个 List encuesta,并且构造函数可能需要一个 List。 但是,您传递的是 String[]。

试试:

militantes.add(new Militante(nombrem, apellidos, edad, profesion, genero, siglas_partido, Arrays.asList(encuesta), cuota, carne)));

如果这不起作用,请编辑您的帖子以添加 Militante 课程。 谢谢。

【讨论】:

  • 如果您不知道Militante 的构造函数是什么样的,您如何将其发布为答案?
猜你喜欢
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 2013-06-12
  • 2022-01-22
  • 1970-01-01
相关资源
最近更新 更多