gpt4 book ai didi

java - 线程 "main"java.util.NoSuchElementException : No line found - Using scanner input 中的异常

转载 作者:搜寻专家 更新时间:2023-10-31 08:23:01 27 4
gpt4 key购买 nike

<分区>

我正在尝试从链表中删除特定节点。我正在尝试调用我的方法 removeNode,但是当我调用它来获取用户输入时它给了我这个错误。非常感谢任何有关如何解决此问题的建议!

Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at LinkedList.removeNode(LinkedList.java:123)
at fileIn.<init>(fileIn.java:22)
at fileIn.main(fileIn.java:13)

链表类:

import java.util.Scanner;

public class LinkedList {

public LinkedListNode front;

public LinkedList() {
this.front = null;
}

public void insertBack(String data)
{
if(front == null){
front = new LinkedListNode(data);
}
else{
LinkedListNode newNode = new LinkedListNode(data);
LinkedListNode current = front;

while(current.getNext() != null){
current = current.getNext();
}
current.setNext(newNode);
}
}//end insertBack

public void addAfter(LinkedListNode spot, String data)
{
LinkedListNode newNode;

newNode = new LinkedListNode(data);

newNode.next = spot.next;
spot.next = newNode;
}//end addAfter

public void addBefore(LinkedListNode spot, String data)
{

}//end addBefore

public void deleteAfter(LinkedListNode spot)
{
LinkedListNode nextNode;

nextNode = spot.next;
spot.next = nextNode.next;
}//end deleteAfter


public String showList()
{
sortList();
//^-- Will sort the sum but not the nodes

int i = 0;
String retStr = "The nodes in the list are:\n";
LinkedListNode current = front;
while(current != null){
i++;
retStr += "Node " + i + " is: " + current.getData() + " and the sum is: " + current.getSum() + "\n";
current = current.getNext();
}

return retStr;
}

public LinkedListNode findTail()
{
LinkedListNode current = front;
while(current.getNext() != null){
current = current.getNext();
}
return current;
}//end findTail

public LinkedList sortList()
{
LinkedListNode current = front;
LinkedListNode tail = null;

while(current != null && tail != front )
{
LinkedListNode next = current;

for( ; next.next != tail; next = next.next)
{
if(next.sum >= next.next.sum)
{
long temp = next.sum;
String temp2 = next.data;

next.sum = next.next.sum;
next.data = next.next.data;

next.next.sum = temp;
next.next.data = temp2;
}
}

tail = next;
current = front;
}

return this;
}

public void removeNode(){

String searchedNode;

Scanner in = new Scanner(System.in);
System.out.println("Enter the name you would like to remove from the list: ");
searchedNode = in.nextLine();
in.close();
LinkedListNode previous = null;
LinkedListNode current = front;

//while there is something in the list nodes
while (current != null)
{
//if the data of current is equal to the node being searched
if(current.data.equals(searchedNode))
{
//set current to the node after current
current = current.next;
//if previous is equal to null(which it is)
if (previous == null)
{
//set previous equal to current
previous = current;
}

else previous.next = current;
} else {
previous = current;
current = current.next;
}
} //end while
}
}

类中的文件:

import java.util.Scanner;
import java.io.*;

public class fileIn
{
LinkedListNode front;
LinkedList myList = new LinkedList();
String fname;

public static void main(String[] args)
{
fileIn f = new fileIn();
}//end main


public fileIn()
{
getFileName();
readFileContents();
System.out.print(myList.showList());
myList.removeNode();
}//end fileIn

public void readFileContents()
{
boolean looping;
DataInputStream in;
String line;

/* Read input from file and process. */
try
{
in = new DataInputStream(new FileInputStream(fname));

looping = true;
while(looping)
{
/* Get a line of input from the file. */
if (null == (line = in.readLine()))
{
looping = false;
/* Close and free up system resource. */
in.close();
}//end if
else
{
myList.insertBack(line);
}//end else
} /* End while. */
} /* End try. */

catch(IOException e)
{
System.out.println("Error " + e);
} /* End catch. */
}//end readFileContents

public void getFileName()
{
Scanner in = new Scanner(System.in);

System.out.println("Enter file name please.");
fname = in.nextLine();
in.close();
}//end getFileName

}//end class fileIn

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com