Ich mache ein Projekt für die Schule und meine Aufgabe besteht darin, ein LinkedList-Programm zu erstellen, das ein Benutzer in eine Zeile von Ints lesen und die Linked List-Funktionen verwenden kann, um sie umgekehrt zu drucken. Ich habe es etwas funktioniert, aber jedes Mal muss ich das Einlesen von System.in durch Drücken von Strg + C beenden. Jeder ... Zeit ...Umgekehrte Liste Problem
Ich versuche, einen Weg zu finden, den Scanner zu stoppen, lesen, wenn es den Int -1 liest. Whitespace ist auch okay. Aber sobald es -1 liest, möchte ich es stoppen Aber ich kann den richtigen Weg nicht finden. Hier
ist das, was ich bisher:
//ReverseUsingLinkedList.java
import java.util.*;
public class ReverseUsingLinkedList
{
public static void main(String[]args)
{
System.out.print("Enter a sequence of Integers, -1 to end: ");
LinkedList<Integer> num= new LinkedList<Integer>();
Scanner keyboard = new Scanner(System.in);
while(keyboard.hasNext())
{
num.addFirst(keyboard.nextInt());
}
keyboard.close();
num.removeFirst(); //Removes the -1 from the LinkedList
System.out.println("List in reverse :" + num.toString());
}
}
Ich habe versucht, die Änderung der in hasNext.Int lesen() statt, aber das bewirken, dass die Lese über springen alle anderen int, die ich zu lesen versuchte. Ich habe auch versucht, einen Iterator zu verwenden, aber ich konnte nicht den richtigen Weg finden, ihn zu benutzen.
Irgendwelche Vorschläge? wenn ja
while(keyboard.hasNext())
int num = keyboard.nextInt();
if (num == -1) // or less than 0 ?
break;
num.addFirst(num);
}
bearbeiten
Bitte beachten Sie @nullpointer sehr gültig Kommentar
* Ich muss das Einlesen von System.in beenden, indem Sie Strg + C * drücken - wie erwartet der Scanner sonst, dass es keine Eingaben mehr von System.in gibt? - vielleicht "Pause", wenn nicht ein Int? –
In diesem Fall ist der Leerraum aber auch okay, ich versuche einen Weg zu finden, der den Scanner stoppt, wenn er -1 liest. Es kann jedoch nicht den richtigen Weg finden, dies zu tun. –