Scanner.hasNext findet kein Ende

Status
Nicht offen für weitere Antworten.

kajdo

Mitglied
Hallo Leute!

Ich hab folgendes Problem und find keine Lösung dazu:
Beim code unten wird aus System.in eingelesen (Beispiel: 3 5 +) ... dann wird per
UPN eine Berechnung ausgeführt

Code:
import java.util.Scanner;
import java.util.Stack;

public class Main {
	public static void main(String[] args) {
		Scanner einlesen = new Scanner(System.in);
		Stack intStack = new Stack();
		String str = new String();
		
		// hier werden die Daten eingelesen und an die UPN Klasse weitergegeben
		
		while (einlesen.hasNext()) {
			str = einlesen.next();
			System.out.println("eingelesen: "+str);
			try {
				intStack.push(Integer.parseInt(str));
			} catch (java.lang.NumberFormatException e) {
				if (str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/") ) {
					intStack = Upn.calculate(intStack, str.toCharArray()[0]);
				}
			}
		}
		
		System.out.println("jetzt aber...");
		
		while (!intStack.empty()) System.out.print(""+intStack.pop());
	}
}

die Stelle "System.out.println("jetzt aber...");" wird aber nie erreicht ---> WHY???

wäre für jeden Hinweis dankbar!
 

L-ectron-X

Gesperrter Benutzer
Ich nehme mal an, dass du dir mit while (einlesen.hasNext()) den Ausgang aus deiner while-Schleife verrammelt hast. Eine Endlosschleife, aus der du in der momentanen Ausführung nicht herauskommst, deshalb auch nicht System.out.println("jetzt aber..."); erreichst.
 

kajdo

Mitglied
Hm ... danke für die schnelle antwort ... aber ist die methode hasNext() nicht für eben solche abfragen da??? ... hätt jemand eine alternative dazu?

in der java-api hab ich noch den hinweis: "This method may block while waiting for input to scan." gefunden ... allerdings hilft mir das auch nicht wirklich viel weiter ... ich will eigentlich nur eine zeile einlesen und die dann verarbeiten (abgeschlossen mit enter)

ich bin das Problem zwischenzeitlich folgendermaßen umgangen:
Code:
public static void main(String[] args) {
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in) );
	String system_eingabe = new String();
	
	try {
		system_eingabe = br.readLine();
	} catch (IOException e1) {
		e1.printStackTrace();
	}
	
	//Scanner einlesen = new Scanner(System.in);
	Scanner einlesen = new Scanner(system_eingabe);
	Stack intStack = new Stack();
	String str = new String();
	
	// hier werden die Daten eingelesen und an die UPN Klasse weitergegeben
	
	while (einlesen.hasNextLine()) {
		str = einlesen.next();
		System.out.println("eingelesen: "+str);
		try {
			intStack.push(Integer.parseInt(str));
		} catch (java.lang.NumberFormatException e) {
			if (str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/") ) {
				intStack = Upn.calculate(intStack, str.toCharArray()[0]);
			}
		}
	}
	
	System.out.println("jetzt aber...");
	
	while (!intStack.empty()) System.out.print(""+intStack.pop());
}
 

L-ectron-X

Gesperrter Benutzer
Versuchs mal so:
Code:
Scanner einlesen = new Scanner(System.in);
int i = einlesen.nextInt();
System.out.println("eingelesen: "+i);
 

kajdo

Mitglied
Hi!

@L-ectron-X Danke nochmal für die Unterstützung ...

Die aufgabe war einen Rechner mit der upn (link oben) nachzustellen ... die Eingabe erfolgt mittels String (eine Zeile) der z.B. so aussehen könnte: 1 2 3 5 2 3 4 + + - ... d.h. es können auch nicht int-variablen eingegeben werden ... die gesamte angabe gibts hier: UPN-Angabe ...

Das beispiel hab ich mit dem Umweg über BufferedReader aus System.in gelöst aber warum die schleife vom Scanner kein Ende findet ist mir schleierhaft

aber - egal ... aufgabe gelöst ...
 

Leroy42

Top Contributor
kajdo hat gesagt.:
aber warum die schleife vom Scanner kein Ende findet ist mir schleierhaft

Weil die Eingabe von der Tastatur, im Gegensatz zu Dateien, kein Ende liefert;
es sei denn du selbst sagst dem System das die Eingabe beendet ist.

Hierfür dient das Zeichen EOT(End of Text) mit dem ASCII-Code 26.

Also tipp an der Konsole einfach mal STRG-Z und Return ein, dann weiß auch
dein Java-Programm das die Eingabe zu Ende ist.
 
G

Goblin

Gast
Das heißt mit Scanner ist das gar nicht zu schaffen?

Ich steh nämlich vor dem selben Problem, würd aber gern Scanner verwenden.. Ich benutz den JCreator, da bedeutet STRG-Z nur rückgängig. Gibts keine Möglichkeit das er ENTER als EOT annimmt?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Scanner.hasNext() beendet den Thread ohne Message Allgemeine Java-Themen 4
X Input/Output InputStream/Scanner(System.in) read()/hasNextLine() block unterbrechen Allgemeine Java-Themen 7
J Variablen Scanner als Klassenvariable Allgemeine Java-Themen 5
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
Bluedaishi Twain Scanner im Netzwerk Allgemeine Java-Themen 10
B Scanner erkennt keinen Text in Textdatei, obwohl welcher drinsteht Allgemeine Java-Themen 10
J Scanner oder BufferReader Allgemeine Java-Themen 2
1 Java Scanner Allgemeine Java-Themen 2
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
A Scanner Variable Klassenimtern deklarieren Allgemeine Java-Themen 12
T Datentypen Scanner Allgemeine Java-Themen 4
A Erste Schritte If Abfragen + Scanner Allgemeine Java-Themen 7
P Input/Output java.util.Scanner in einer Schleife und Exception-Behandlung: Einlesen einer Zahl Allgemeine Java-Themen 4
D Arraylist/For Schleife/Scanner Allgemeine Java-Themen 30
P Input/Output Datei einlesen per Scanner(f) - mit Cron gehts nicht Allgemeine Java-Themen 1
S Erste Schritte Scanner in Methode einbauen Allgemeine Java-Themen 4
B QR Scanner WebCam Allgemeine Java-Themen 2
P Scanner als Inputstream für Java Prozess Allgemeine Java-Themen 4
H Scanner: Ausgabe erst nach Abbruch Allgemeine Java-Themen 8
S Bekomme mit Scanner und URL keine Html-Seite ausgelesen Allgemeine Java-Themen 3
J NetBeans Frage bezüglich der Scanner-Klasse Allgemeine Java-Themen 6
H Scanner soll einen Inputredirect einlesen, liest aber nicht jedes Wort ein. Allgemeine Java-Themen 3
Ark Locale, Formatter und Scanner: Bug bei Gleitkommazahlen? Allgemeine Java-Themen 2
X Scanner hört nach der 25. Zeile auf Allgemeine Java-Themen 6
A Split, Scanner, StringTokenizer oder PatternMatching für flexibles Dateieinlesen? Allgemeine Java-Themen 2
D java.util.InputMismatchException im Scanner -wieso? Allgemeine Java-Themen 5
K Scanner - große Textfile, nur 0 ab betim. Wert Allgemeine Java-Themen 4
D Scanner leer aber bufferedReader nicht?! Allgemeine Java-Themen 2
N Scanner läuft nicht durch Allgemeine Java-Themen 2
R Scanner mit Java Allgemeine Java-Themen 2
J Parser / Scanner / Tokenizer gesucht Allgemeine Java-Themen 3
J Problem mit Scanner-Stream Allgemeine Java-Themen 2
J Mit Scanner-Klasse eine Datei zeilenweise einlesen und nur bestimmte Zeichen abfragen Allgemeine Java-Themen 11
M Scanner-Methode: Mehrere Eingaben mit Exception behandeln Allgemeine Java-Themen 10
R Barcode Scanner mit JavaPos ansprechen Allgemeine Java-Themen 1
M Barcode-Scanner unterscheidung zur Tastertur Allgemeine Java-Themen 7
H Problem mit Scanner Klasse Allgemeine Java-Themen 7
E Wie Zeichen eingeben mit Klasse Scanner? Allgemeine Java-Themen 5
D Problem mit java.util.scanner: Falsche Ergebnisse Allgemeine Java-Themen 4
E Scanner Frage :) Allgemeine Java-Themen 8
A Unterschied Scanner und Matcher Allgemeine Java-Themen 5
S Problem mit Scanner Allgemeine Java-Themen 5
G Barcode (Strichcode)-Scanner Allgemeine Java-Themen 10
S Scanner Allgemeine Java-Themen 6
G Scanner-Generator zur Erkennung von Java Tokens Allgemeine Java-Themen 7
B Try/Catch in While-Schleife mit Scanner - Hilfe! Allgemeine Java-Themen 3
D ProcessBuilder und Scanner Probleme mit einigen Prozessen Allgemeine Java-Themen 2
S Die Methode close() der Klasse Scanner Allgemeine Java-Themen 3
G Scanner und Abbruchbedingung/Pattern Allgemeine Java-Themen 2
bernd java.util.Scanner erst ab Java 1.5? Allgemeine Java-Themen 4
Dann07 Java-Programm findet DLLs nicht! Allgemeine Java-Themen 20
T JSoup findet input Feld nicht?! Wie kann ich das Feld finden? Allgemeine Java-Themen 3
M Matcher-Klasse findet match nicht Allgemeine Java-Themen 6
G Eclipse Java findet MySQL Driver nach export nicht mehr Allgemeine Java-Themen 2
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
S URLClassLoader findet ResourceBundle nicht Allgemeine Java-Themen 0
R Seleium / WebDriver findet weder URL noch Title Allgemeine Java-Themen 1
B Classpath Eclipse findet importierte Klassen nicht Allgemeine Java-Themen 1
A Classpath programm findet jdbc nicht Allgemeine Java-Themen 4
E ProcessBuilder findet Datei nicht Allgemeine Java-Themen 3
S Programm findet eingebundene .jar Datei nicht Allgemeine Java-Themen 7
A Collections HashMap.containsKey findet keine immutablen Objekte Allgemeine Java-Themen 3
J javax.comm findet serielle ports nicht Allgemeine Java-Themen 2
G jar Datei findet Main Class nicht... Allgemeine Java-Themen 2
X Java findet eine Enum Klasse nicht Allgemeine Java-Themen 2
Q .jar findet ImageIcon nicht Allgemeine Java-Themen 16
J Entweder XP oder Vista findet die Datei nicht FileNotFoundException Allgemeine Java-Themen 4
G Compilier-Problem findet Klasse nicht ! Allgemeine Java-Themen 11
M Ausführbares JAR erstellen - Findet Klassen nicht Allgemeine Java-Themen 4
M Import findet das Projekt nicht. Allgemeine Java-Themen 5
K HTML-Formular findet Servlet nicht Allgemeine Java-Themen 2
S jni, javah, eclipse - wer findet den fehler? Allgemeine Java-Themen 5
W Compiler findet Pakete nicht. Allgemeine Java-Themen 2
S ResourceBundle findet Resource nicht Allgemeine Java-Themen 4
A Swing hat ein leicht verändertes Aussehen, wie findet ihrs? Allgemeine Java-Themen 28
Y Comm-API findet keine Ports Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben