Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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 将文本从txt文件放入链接列表_Java_Linked List_Stringtokenizer - Fatal编程技术网

Java 将文本从txt文件放入链接列表

Java 将文本从txt文件放入链接列表,java,linked-list,stringtokenizer,Java,Linked List,Stringtokenizer,我正在尝试将数字表达式行标记为CS项目的链接列表。我必须使用我在以前的实验室中创建的链接列表 我将一行的每个数字和运算符标记化,并在标记化后将每个标记插入链接列表中的一个节点。当我编写程序以打印每个标记时,每个标记都会被打印出来。但是当我告诉它打印包含每个令牌作为节点的链表时,一些操作符丢失了。我不知道这种行为的原因是什么 下面是创建包含每个令牌的链接列表的方法: public static LinkedListTest ReadInFile(String path){ File

我正在尝试将数字表达式行标记为CS项目的链接列表。我必须使用我在以前的实验室中创建的链接列表

我将一行的每个数字和运算符标记化,并在标记化后将每个标记插入链接列表中的一个节点。当我编写程序以打印每个标记时,每个标记都会被打印出来。但是当我告诉它打印包含每个令牌作为节点的链表时,一些操作符丢失了。我不知道这种行为的原因是什么

下面是创建包含每个令牌的链接列表的方法:

    public static LinkedListTest ReadInFile(String path){
    File file = new File(path);
    LinkedListTest list = new LinkedListTest();

    try {
        Scanner scanner = new Scanner(file);
        int count = 0;

        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            StringTokenizer st = new StringTokenizer(line);
            while (st.hasMoreTokens()){
                list.insert(st.nextToken());
            }
        }
        scanner.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    return list;
}
以下是插入链接列表和打印链接列表的方法:

public class LinkedListTest implements LinkedList {
private Node head;

public LinkedListTest(){
    head = new Node();
}

public void insert(Object x){
    if (lookup(x) == false){

        if (head.data == null)
            head.data = x;

        else{
        /*
        Node NewNode = new Node();
        NewNode.data = x;
        NewNode.next = head;
        head = NewNode;
        */

            //InsertLast
            Node temp = head;

            while (temp.next != null){
                temp = temp.next;
            }

            Node NewNode = new Node();
            NewNode.data = x;
            NewNode.next = null;

            temp.next = NewNode;

        }
    }
}

public void printList(){
    Node temp = head;

    while (temp.next != null){
        System.out.print(temp.data + " ");
        temp = temp.next;
    }

    System.out.print(temp.data + " ");
}
}

我解决了。我的insert函数中的lookup子句把它搞砸了