阅读从一个文本文件,并把它变成一个链表



我们的任务是创建一个程序,它将从一个名为students.txt的输入文件中读取数据,该文件包含学生的姓名(提供了示例输入)。这个项目将包含以下

classStudent

  • 私有实例变量

lastName -用于存储学生姓氏的字符串数据类型

firstName -用于存储给定学生姓名的字符串数据类型

  • 构造函数,接受两个输入:(String, String)。这两个输入以正确的顺序表示姓和名。构造函数将简单地将参数中的数据赋值给实例变量。

  • 名为toString()的公共实例方法,它返回一个字符串数据(学生的姓名),格式如下& name, firstname">

  • 类MainApp

  • 包含main()方法,该方法简单地声明了一个名为list的LinkedList变量,该变量可以存储Student对象**。** list变量将保存从输入文件中读取的数据。读取文件内容后,显示学生姓名。
  • 从文件中读取每个学生数据时,如果学生的姓氏以元音字符开头,则在列表开头添加student对象。如果它是一个辅音,那么在列表的末尾添加student对象。

students.txt

Ang
Bryan
Santos
Charlie
Chua
Leah
Yee
John
Abas
Ryan
Tulfo
Ram
Ching
Daryl
Tulfo
Dona
Ching
Daniela`

MainApp.java

import java.util.*;
import java.lang.*;
import java.io.*;
public class MainApp {
static class Node{
Student info;
Node next;
public Node(Student info){
this.info = info;
next = null;
}
public Node(Student info, Node node){
this.info = info;
next = node;
}

}
static class StudentLinkedList{
Node head, tail;

public StudentLinkedList(){
head = tail = null;
}
public void addToTail(Node node){
if(head == null){
head = tail = null;
return;
}
tail.next = node;
tail = node;
}

public void addToHead(Node node){
if(head == null){
head = tail = null;
return;
}
node.next =head;
head = node;
}

public void printAll(){
Node temp = head;
while(temp != null){
temp.info.toString();
temp = temp.next;
}
}
}


public static void main (String args[])throws FileNotFoundException {
Scanner in = new Scanner(new FileReader("students.txt"));
StudentLinkedList list = new    StudentLinkedList();

String ln, fn;
Student s;
Node node;
while (in.hasNext()) {
ln =  in.nextLine();
fn = in.nextLine();

s = new Student(ln,fn);
node = new Node(s);
}
if(in.hasNext())
in.nextLine();
in.close(); 

}


}

Student.java

public class Student {

private String lastname, firstname;

public Student(String ln, String fn) {
this.lastname = ln;
this.firstname = fn;

}
public void setLastName(String lastname){
this.lastname = lastname;
}
public void setFirstName(String firstname){
this.firstname = firstname;
}
public String getLastName(){
return lastname;
}
public String getFirstName(){
return firstname;
}
@Override
public  String  toString(){
String str = (lastname +", "+ firstname);
return str;
}        

}

这是我的代码到目前为止,我不知道如何继续这之后。任何提示都是有用的。

添加必须做什么?

  • 当尾巴== null(和头部== null)

    head = newNode
    tail = newNode
    
  • 当尾巴= null(头部= null)

    tail.next = newNode
    tail = newNode
    

如你所见,你做得太多,使事情复杂化了。

最新更新