Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java中的textfile输入在ArrayList中创建对象_Java - Fatal编程技术网

从java中的textfile输入在ArrayList中创建对象

从java中的textfile输入在ArrayList中创建对象,java,Java,我有一个学生列表的文本文件,其中列出了姓、名、实验室成绩、项目成绩和考试成绩,例如: Owens Will 46 54 56 Smith John 44 77 99 我正在尝试编写一个方法,读取文本文件,使用每一行创建一个Student对象,然后将其添加到Students的ArrayList中。学生对象由名字、姓氏、实验室、项目和考试成绩组成 以下是我目前掌握的情况: private ArrayList<Student> arraylist = new ArrayList<

我有一个学生列表的文本文件,其中列出了姓、名、实验室成绩、项目成绩和考试成绩,例如:

Owens Will 46 54 56  
Smith John 44 77 99
我正在尝试编写一个方法,读取文本文件,使用每一行创建一个Student对象,然后将其添加到Students的ArrayList中。学生对象由名字、姓氏、实验室、项目和考试成绩组成

以下是我目前掌握的情况:

private ArrayList<Student> arraylist = new ArrayList<Student>();

public void ReadFile(String inputfile) throws FileNotFoundException {
    File myFile = new File(inputfile);
    Scanner sc = new Scanner(myFile);

    while (sc.hasNextLine()) {
        arraylist.add(sc.nextLine());
    }
}
使用分割函数

String line = sc.nextLine();
String[] student = line.split(" ");
String lastName = student[0];
String firstName = student[1];
String labGrade = student[2];
String projectGrade = student[3];
String examGrade = student[4];
新学生(学生[0]、学生[1]、学生[2]、学生[3]、学生[4])
函数split in String object将拆分任何包含空格的子字符串,如上例所示。您可以选择使用
String[]student=line.split(“,”)拆分CSV文件中的逗号“,”但在本例中它是空的。Split将返回一个字符串数组,类似于:

public void ReadFile(String inputfile) throws FileNotFoundException {
    arraylist = new ArrayList<Student>();
    File myFile = new File(inputfile);
    Scanner sc = new Scanner(myFile);

    while (sc.hasNextLine()) {
        try {
            String[] line = sc.nextLine().split(" ");

            arraylist.add(new Student(line[1], line[0], Integer.parseInt(line[2]), ...));
        } catch (Exception e) {
            System.out.println("Error of some kind...");
            continue; // maybe, I dunno.
        }
    }
}
public void ReadFile(字符串inputfile)引发FileNotFoundException{
arraylist=新的arraylist();
文件myFile=新文件(inputfile);
扫描仪sc=新扫描仪(myFile);
while(sc.hasNextLine()){
试一试{
String[]line=sc.nextLine().split(“”);
add(新学生(第[1]行、第[0]行、整数.parseInt(第[2]行、…));
}捕获(例外e){
System.out.println(“某种错误…”);
继续;//也许吧,我不知道。
}
}
}
应该可以:

private ArrayList<Student> arraylist = new ArrayList<Student>();

public void ReadFile(String inputfile) throws FileNotFoundException 
{
    File myFile = new File(inputfile);
    Scanner sc = new Scanner(myFile);

    while (sc.hasNextLine()) 
    {
        String[] stdinfo = sc.nextLine().split(" ");
        arraylist.add(new Student(stdinfo[1], stdinfo[0], Integer.parseInt(stdinfo[2]), Integer.parseInt(stdinfo[3]), Integer.parseInt(stdinfo[4])));
    }

}
private ArrayList ArrayList=new ArrayList();
public void ReadFile(字符串inputfile)引发FileNotFoundException
{
文件myFile=新文件(inputfile);
扫描仪sc=新扫描仪(myFile);
while(sc.hasNextLine())
{
字符串[]stdinfo=sc.nextLine().split(“”);
add(新学生(stdinfo[1],stdinfo[0],Integer.parseInt(stdinfo[2]),Integer.parseInt(stdinfo[3]),Integer.parseInt(stdinfo[4]);
}
}

您是如何/在哪里定义
学生
班级的?@ScottHunter编辑为先显示索引1,然后显示索引0(因为它与姓氏相对)
private ArrayList<Student> arraylist = new ArrayList<Student>();

public void ReadFile(String inputfile) throws FileNotFoundException 
{
    File myFile = new File(inputfile);
    Scanner sc = new Scanner(myFile);

    while (sc.hasNextLine()) 
    {
        String[] stdinfo = sc.nextLine().split(" ");
        arraylist.add(new Student(stdinfo[1], stdinfo[0], Integer.parseInt(stdinfo[2]), Integer.parseInt(stdinfo[3]), Integer.parseInt(stdinfo[4])));
    }

}