Scanner hasNext(Line)() Block Problematik...

donchris

Aktives Mitglied
Ich habe eine kleine Programmieraufgabe zu bewältigen, die mich im Moment den letzten Nerv kostet. Es geht um eine kleine Konsolenanwendung, die Befehle von der Konsole einliest und dann verarbeitet. Nun habe ich eine Scanner Instanz und eine while Schleife, die solange durchläuft bis hasNextLine() false zurück liefert.

In meinem Programm werden je nach Code Objekte instanziiert, die sich dann um die Weiterverarbeitung kümmern, daher wird in der main das spezifische Objekt erzeugt und per Konstruktor eine Referenz auf den Scanner mitgegeben. Dieses neue Objekt soll dann sich die benötigten Parameter direkt vom Scanner holen und je nach bedarf weiterarbeiten/parsen.

Nun zum Problem selbst: Es entsteht eine Art Endlosschleife und es sollte eigentlich keine "leeren Zeilen" geben doch ich kann dies ja nicht prüfen, da sonst der Scanner auf den nächsten Token/Line verweist und eventuell Parameter/Befehle übergangen werden. ich kann ja nicht den aktuellen Token testen, ohne dass der Scanner "weiterfährt" ... oder ?

Weiter werden oft Chars als Parameter erwartet, die ich per scanner.next().charAt(0) entnehme, doch irgendwie müsste ich ja prüfen können, ob es ein Zeichen gibt (also eine Art hasNextChar() - leider gibt es diese Methode ja nicht :( )

Gibt es weiters eine Möglichkeit Token, die man vom Scanner hat, wieder so anzugängen, als ob man sie nicht entnommen hätte? ..

ich hoffe ihr könnt mir helfen :)
 

Michael...

Top Contributor
Du kannst doch den String den scanner.next() liefert in einer Variable speichern, diese kannst Du dann beliebig prüfen, zerstückeln oder anderweitig weiter verarbeiten.
 

donchris

Aktives Mitglied
Ja, das mach ich auch teilweise, doch das Problem ist, das vorgeschrieben ist, dass ich keine Strings an die verarbeitenden Objekte weiterleite, sondern eine Referenz des Scanners ... und dem fehlen dann die Strings, die ich schon ausgelesen habe :( ...

Weiters bringt mir der String insofern nicht viel, da ich trotzdem eine Endlosschleife habe - das block Problem und ich hoffe, dass es da eine art If gibt, die dann die schleife unterbricht... aber

Java:
 if (scanner.next().equals("")) 
           break;

brachte keinen Erfolg..
 

donchris

Aktives Mitglied
Der Scanner wird dann vom aufgerufenen Objekt ausgewertet, welches dann die Fehler abfängt/auswertet und dann die eigentlichen "Berechnungen" wieder durch ein anderes Objekt durchführen lässt.

Also main (referenziert Scanner) und lädt je nach Befehl einen neuen Vermittler -> "Vermittler"-Objekt wertet Scanner oberflächig aus extrahiert Parameter und ruft damit ein neues Objekt auf -> Verarbeitendes Objekt verarbeitet die Parameter.

Je nach Befehl wird dann ein Vermittler erzeugt, der dann die spezifischen Parameter vom Scanner direkt nimmt und verarbeitet und schlussendlich das "datenverarbeitende Objekt" erzeugt und zurückliefert.

Leider ist die Implementierung weitaus schwieriger als die Theorie... und ich habe nun das Problem, dass ich auf der einen Seite eine Endlosschleife habe, da ich keine leeren Zeilen erkennen kann und auf der anderen Seite, dass ich auch keine Ahnung habe warum ich trotz hasNextLine() diese aus hasNext() bekannten block Anomalien habe... ok, ich verwende next, aber nicht in der main, sondern in den erzeugten Vermittler-Objekten ..

lg

ps: Bezüglich wer mach solche Angaben ... das ist eine meiner ersten Programmier Lehrveranstaltungen auf der Uni - und nun will man uns möglichst viel refaktorisieren lassen und so die Erzeugung von Modulen vereinfachen...
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Wirklich verstanden habe es nicht, um was es da geht bzw. was da wie implementiert werden soll.
Kannst Du eventuell kompilierbaren BspCode posten, damit mal sieht um was da geht und wie sich der Fehler äussert?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
ZH1896ZH Verstehe verschieden Scanner und hasNext() nicht ganz Java Basics - Anfänger-Themen 2
RK Scanner.hasNext() ist niemals false! o_O Java Basics - Anfänger-Themen 3
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
M Scanner Input mit if überprüfen Java Basics - Anfänger-Themen 5
D Scanner Java Basics - Anfänger-Themen 2
T scanner nicht erkannt Java Basics - Anfänger-Themen 3
T scanner eingaben erkennen und umtauschen Java Basics - Anfänger-Themen 4
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
H Scanner nextLine() bringt Dateipfad Java Basics - Anfänger-Themen 1
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
I Scanner Loop Java Basics - Anfänger-Themen 1
J Scanner cannot be resolved to a type Java Basics - Anfänger-Themen 3
C Scanner und If-Anweisung in Kombi Java Basics - Anfänger-Themen 3
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
T j.u.Scanner(Sys.in).nextLine() wieder schließen? Java Basics - Anfänger-Themen 5
J Erste Schritte Scanner Java Basics - Anfänger-Themen 4
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
javapingu Endlosschleife bei User Input mit try Scanner Java Basics - Anfänger-Themen 7
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
Poppigescorn Arrayliste Mittels Scanner erweitern Java Basics - Anfänger-Themen 6
Jan_x8 Timer/Scanner Java Basics - Anfänger-Themen 5
M Scanner Klasse Java Basics - Anfänger-Themen 4
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
H Quellcode Scanner Klasse Java Basics - Anfänger-Themen 2
N java.util.InputMismatchException Fehler Java Scanner Java Basics - Anfänger-Themen 5
S Scanner soll Groß-/ Kleinschreibung ignorieren Java Basics - Anfänger-Themen 2
Y Wie kann ich Konsoleneingaben durch den Scanner mit JUnit 4 testen? Java Basics - Anfänger-Themen 1
J Scanner-Klasse Java Basics - Anfänger-Themen 2
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N Problem mit Scanner Java Basics - Anfänger-Themen 2
V Ersätze für Java-Scanner Java Basics - Anfänger-Themen 9
P Methode die eigentlich einen Scanner benötigt mit toString() Java Basics - Anfänger-Themen 5
A Scanner-Error Java Basics - Anfänger-Themen 8
D Java Scanner Java Basics - Anfänger-Themen 9
M String in Scanner einlesen Java Basics - Anfänger-Themen 6
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
I Scanner auf 10 Stellen begrenzt? Java Basics - Anfänger-Themen 5
B Barcode Scanner Java Basics - Anfänger-Themen 3
V Wie lasse ich die for-Schleife so oft laufen wie per Scanner angegeben? Java Basics - Anfänger-Themen 3
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
S Scanner Java Basics - Anfänger-Themen 36
S Frage zu Scanner Java Basics - Anfänger-Themen 3
cpt.Tomato Scanner problem mit Passwort Login Java Basics - Anfänger-Themen 3
O Scanner Klasse Java Basics - Anfänger-Themen 8
M java.util.scanner Fehler Java Basics - Anfänger-Themen 5
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
W Eclipse Che Scanner Java Basics - Anfänger-Themen 8
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
X Erste Schritte Problem mit scanner Java Basics - Anfänger-Themen 2
A Scanner.useLocale(Locale.US); Java Basics - Anfänger-Themen 4
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
I Scanner und Arrays Java Basics - Anfänger-Themen 2
M Scanner-Eingabe nach gewissem Zeitraum überprüfen Java Basics - Anfänger-Themen 2
Neoline Methoden Scanner Methode Java Basics - Anfänger-Themen 9
E Probleme mit Scanner Java Basics - Anfänger-Themen 4
A Java Scanner Funktioniert nicht Java Basics - Anfänger-Themen 2
B Vom scanner in ein Arraylist Java Basics - Anfänger-Themen 7
L Scanner Ausgabe Java Basics - Anfänger-Themen 37
S Zeilenumbruch mit Scanner erkennen Java Basics - Anfänger-Themen 9
O Erste Schritte Scanner mehrere male benutzen (Konsole) Java Basics - Anfänger-Themen 7
W Wie arbeite ich mit dem Typ Scanner? Java Basics - Anfänger-Themen 5
J Input/Output Scanner Input als etwas einsetzen Java Basics - Anfänger-Themen 3
R CMDTools Scanner Fehler Java Basics - Anfänger-Themen 10
D nextInt() nicht für Scanner definiert? Java Basics - Anfänger-Themen 2
N Operatoren Suchen nach einer bestimmten Eingabe (durch Scanner) Java Basics - Anfänger-Themen 7
F Scanner Problem Java Basics - Anfänger-Themen 8
T Variablen Array mit Scanner befüllen Java Basics - Anfänger-Themen 6
C Java Scanner einlesen von txt Dokument InputMismatch Java Basics - Anfänger-Themen 9
b1ck Scanner schließen, erneute Verwendung Java Basics - Anfänger-Themen 12
F Scanner - nextLine() gibt leeren String zurück Java Basics - Anfänger-Themen 2
T Problem mit Scanner. Java Basics - Anfänger-Themen 4
J Methode über Scanner aufrufen Java Basics - Anfänger-Themen 15
J Erste Schritte Scanner negative zahl einlesen und verwenden. Java Basics - Anfänger-Themen 6
W Methoden Probleme mit der Scanner Methode Java Basics - Anfänger-Themen 2
Silvascus Scanner Problem Java Basics - Anfänger-Themen 5
W Erste Schritte import java.util.scanner funktioniert nicht Java Basics - Anfänger-Themen 2
TheMenox Error bei Scanner - woher? Java Basics - Anfänger-Themen 14
D Fehler bei String eingabe via Scanner Java Basics - Anfänger-Themen 6
F Problem do while Schleife und Scanner Java Basics - Anfänger-Themen 2
O POI Apache sheet scanner Java Basics - Anfänger-Themen 1
A regulären Ausdruck mit Hilfe der Klasse Scanner in einem String finden Java Basics - Anfänger-Themen 2
F Array mit Scanner-Werten Java Basics - Anfänger-Themen 4
M Input/Output Scanner schließt nicht Java Basics - Anfänger-Themen 2
M Scanner class Java Basics - Anfänger-Themen 6
K Mit Scanner aus einer txt Datei lesen und jede Person mit name, vorname, geburtsdatum speichern Java Basics - Anfänger-Themen 5
S Array mit "foreach"-Schleife und nextInt (aus Scanner) beschreiben Java Basics - Anfänger-Themen 6
G Strings mit Scanner (nextLine) einlesen Java Basics - Anfänger-Themen 7
Q Scanner auf eine Zahl beschränken Java Basics - Anfänger-Themen 2
S Sonderzeichen '|' (u007C) mit Scanner einlesen Java Basics - Anfänger-Themen 1
T Scanner lässt sich nicht importieren Java Basics - Anfänger-Themen 1
R scanner in String funktioniert nicht Java Basics - Anfänger-Themen 1
P scanner ein Double einlesen Java Basics - Anfänger-Themen 10
A InputMismatchException mit Scanner Java Basics - Anfänger-Themen 6
J scanner, String einlesen und vergleichen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben