java - 读取不同行格式的txt并创建对象?

标签 java file oop java.util.scanner filereader

我有一个包含姓名和姓氏的 txt 文件,我需要从中创建用户。 例如,我的 txt 值如下:

Beckham, David
Lopez Vega, Maria
Graham Daniels, Luke

问题在于,创建用户时仅使用第一个姓氏和名字(如果有第二个姓氏,则忽略第二个姓氏)。 我不知道如何获取该信息并用它创建一个对象。 对象类很简单:

public class Student {
    private String name;
    private String lastName;

    public Student(String name, String lastName) {
        this.name= name;
        this.lastName= lastName;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getlastName() {
        return lastName;
    }

    public void setlastName(String lastName) {
        this.lastName = lastName;
    }
    

我已经尝试过这个:

Scanner input = new Scanner(new File("Students.txt"));

List<Student> students= new ArrayList<Student>();
while(input.hasNext()) {
    String name= input.next();
    String lastName = input.next();

    Student student= new Student(name, lastName);
    students.add(student)
}

    

但是这不起作用。我已经尝试了一段时间,但无法从文件中获取我需要的信息。

最佳答案

我会读取整行并通过调用 splits 来解析它:

Scanner input = new Scanner(new File("Students.txt"));

List<Student> students = new ArrayList<Student>();
while(input.hasNextLine()) {
    String line = input.nextLine();
    String[] splitLine = line.split(", ");

    String name = splitLine[1];
    
    String[] splitLastName = splitLine[0].split(" ");
    String lastName = splitLastName[0];

    Student student = new Student(name, lastName);
    students.add(student);
}

关于java - 读取不同行格式的txt并创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65374296/

相关文章:

java - 使图像在 JFrame 内容 Pane 中可滚动

java - 使用 PDFBox 2.0.12 进行外部签名

java - 从目录中读取文件并在java中的嵌套for循环中比较文件

c++ - 在以下情况下手动调用析构函数是否是一个糟糕的设计决策?

java - 如何提供对象以及对该类对象的方法引用?

java - 在 Eclipse 中设置 Android 开发工具

c - 有没有一种不错的方法可以用 C 中的另一个单词替换文件中的字符串?

php - 上传pdf文件到Mysql服务器

苹果或水果的 C# 类?

r - 内存中没有变量名的数据仍然是 R 中的对象吗?