nur ein Zeichen einlesen (Konsole)

Status
Nicht offen für weitere Antworten.

DON L

Mitglied
Hi.

Ich habe schon in diesem Forum rumgestöbert und ein paar Beiträge zu diesem Thema gefunden, die mir leider nicht weitergeholfen haben. Also stelle ich die Frage ein weiteres mal.

Fragestellung:
Wie kann ich in der Konsole eine Abfrage von nur einem Zeichen machen? D.h. du wirst zu einer Eingabe aufgefordert, z.B. "System.out.print ("Drücke X oder Y");", und nach der Eingabe (ohne Enter zu drücken) soll der Wert in eine Variabele gespeichert werden.

In anderen Beiträgen habe Vorschläge wie, ...Versuche es mit read() oder mit StreamInput..., gelesen, doch damit konnte ich leider nichts anfangen, Anfänger halt. Ich würde mich über jede präzisere Beschreibung sehr freuen.
 

Stefan1200

Top Contributor
Kein Problem:

Ganz zu Anfang:
Code:
import java.io.*;

In deiner Klasse:
Code:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

Die obigen Zeilen brauchst du auf jeden Fall.
Nun möchte ich beides erwähnen:

Nur ein Zeichen einlesen (deine Fragestellung):
Code:
char eingabe = ' ';
eingabe = br.read();

Eine Zeile bis zum Enter einlesen:
Code:
String eingabe = "";
eingabe = br.readLine();

Denke bitte daran den IOException bei der read() oder readLine() Methode abzufangen.
Entweder durch try...catch oder throws.
 

DON L

Mitglied
Erstmal danke für die Antwort.

Den Code habe ich so übernohmen, d.h. in der StdIn.java habe ich die Methode "OneCharInput" eingefügt.
Sieht nun so aus (StdIn.java):
Code:
   public static char OneCharInput ()
    {
       try
        {
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         char eingabe = ' ';
         eingabe = br.read();
        }
        catch (IOException e){return null;};
        return eingabe;
    }
Ist doch so weit korrekt?!

Diese Methode wird wie folgt aufgerufen:
Code:
import StdIn;
...
char x;
x = StdIn.OneCharInput();

Alle anderen Methoden kann ich aus der Oberklasse aufrufen und beim Aufruf dieser Methode bekomme ich beim Kompelieren mit dem JavaEditor diese Fehlermldung:

.\StdIn.java:61: possible loss of precision
found : int
required : char
________eingabe = br.read();
______________________^
Der Bodenstrich sollte ein Leerzeichen darstellen... :?

Den Fehler verstehe ich nicht wirklich, da er ein Int findet!?!
 

Stefan1200

Top Contributor
Habe mal schnell in der API nachgelesen, und du hast recht.
Auf folgender Seite
http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html#read()
steht, das man ein int bekommt, der aber den Wert des chars enthält. Soll also heissen, du musst den Integer noch in einen char casten. Ändere doch bitte die Zeile

Code:
eingabe = br.read();

um in folgende Zeile:

Code:
eingabe = (char)br.read();

Das sollte klappen.
 

DON L

Mitglied
Hallo Stefan1200,

wie es aussieht bist du der Einzige im Forum, der zu Helfen vermag.

Dein Vorschlage habe ich so übernohmen, doch die Fehlermeldungen ließen aus sich nicht lange warten. Beim Kompelieren sagte mir der JavaEditor folgendes:
StdIn.java: 63: incompatible types
found : <null>
required: char
_______catch (IOException e {retrun null;};
_______________________________^
Darauf hin habe ich aus dem Wort "NULL" zwei Hochkommas gemacht, die durch ein Leerzeichen getrennt sind. Am besten Bilde ich mal an dieser Stelle den Quellcode ab:
Code:
public static char OneCharInput ()
    {
       char eingabe = ' ';
       try
        {
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         eingabe = (char)br.read();
        }
        catch (IOException e){return ' ';};
        return eingabe;
    }
}
Mit diesem Code lässt sich das Programm nun kompilieren. Doch beim Aufruf der Methode kann ich immernoch mehrer Zeichen eingeben, die ich mit Enter bestätigen muss. Schön ist, dass nur das erste Zeichen zurückgegeben wird.

Wegen meine geringen Erfahrung mit Java, die etwa gegen Null tendiert, weiß ich nicht wo ich den Fehler suchen soll, Quelltext, Kompiler, Programmierer...
Mich beschleicht langsam ein Gefühl, dass JAVA mir weiterhin ein Buch mit sieben Siegeln bleiben wird. :cry:

Danke für die Hilfe im Voraus.
 

Stefan1200

Top Contributor
Wie wird die Methode OneCharInput aufgerufen?
Poste mal etwas mehr code.

return ' '
ist nicht sehr sinnvoll. Denn man kann ja auch die Leertaste drücken ;-)
 
B

bygones

Gast
ich würde in der Methode nicht die exception abfangen sondern über throws an die Methode weiterleiten, die diese Methode aufruft....

Dann umgehst du das Problem eines Rückgabe wertes und die oberfunktion bekäme nicht mit, dass ein Fehler aufgetreten ist !
 

Ebenius

Top Contributor
@Stefan1200: Dein Code-Beispiel liest zwar nur das erste Zeichen ein, trotzdem musst Du erst ENTER drücken, bevor das Lesen vom Standard-In abgeschlossen wird.

Es grüßt Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Input/Output Zeichen on Konsole einlesen Java Basics - Anfänger-Themen 3
M einzelnes zeichen aus konsole einlesen Java Basics - Anfänger-Themen 2
G Zeichen von der Konsole einlesen Java Basics - Anfänger-Themen 5
S Zeichen ab Suchstring einlesen Java Basics - Anfänger-Themen 6
P Input/Output Textdatei einlesen - 1. Zeichen fehlt Java Basics - Anfänger-Themen 7
S Zeichen einlesen ohne Return? Java Basics - Anfänger-Themen 19
A Textdatei einlesen - erstes Zeichen falsch Java Basics - Anfänger-Themen 20
J Zahlen und Zeichen einlesen Java Basics - Anfänger-Themen 6
B Einlesen von "keinem Zeichen" per readLine() Java Basics - Anfänger-Themen 24
G CSV Datei einlesen & komische Zeichen Java Basics - Anfänger-Themen 5
O String in array einlesen alle x zeichen Java Basics - Anfänger-Themen 15
1 Daten einlesen und bearbeiten (mehr als 2000 Zeichen) Java Basics - Anfänger-Themen 8
H text string alle 100 zeichen in ein 1D array einlesen ? Java Basics - Anfänger-Themen 8
L verschiedene zeichen einlesen Java Basics - Anfänger-Themen 5
V TextArea einlesen, zeichen verändern, ausgeben! Java Basics - Anfänger-Themen 2
M Ein Zeichen von der Tastatur einlesen Java Basics - Anfänger-Themen 6
G zeichen einlesen bis separator Java Basics - Anfänger-Themen 6
J Quelltext mit komischen griechischen Zeichen Java Basics - Anfänger-Themen 4
T or zeichen Java Basics - Anfänger-Themen 2
L 4 stelliges Passwort aus bestimmten Zeichen. Java Basics - Anfänger-Themen 27
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
S Was bedeutet das Zeichen := Java Basics - Anfänger-Themen 9
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
S Arrayausgabe und nur einmal ein Zeichen davor Java Basics - Anfänger-Themen 12
johnboyne Java Zeichen Trennen Java Basics - Anfänger-Themen 1
T Zeichen im String verschiebe Java Basics - Anfänger-Themen 17
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Tino1993 for-Schleife, die eine vorgegebene Anzahl von Zeichen ausgibt Java Basics - Anfänger-Themen 3
pkm Regexproblem - Wie kann ich zwei oder mehr beliebige Zeichen matchen? Java Basics - Anfänger-Themen 7
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
Dimax Erste Schritte String replace alle Zeichen Java Basics - Anfänger-Themen 10
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
F RegEx "+" nur als Zeichen, nicht als Operator oder Sonstiges Java Basics - Anfänger-Themen 2
J Zeichen im String zählen Java Basics - Anfänger-Themen 3
J ObjectOutputStream writeChars, komische Zeichen nur in 1. Zeile Java Basics - Anfänger-Themen 2
H Fehlerausgabe (Ungewollte Zeichen) Java Basics - Anfänger-Themen 1
R Komische Zeichen in Java Java Basics - Anfänger-Themen 5
N Zeichen in einem Textfeld zählen und hinterlegen Java Basics - Anfänger-Themen 6
W Einfachen, ein beliebiges Zeichen oft erkennenden Regex Parser selber schreiben - wie vorgehen? Java Basics - Anfänger-Themen 12
J Vorkommen von Zeichen Java Basics - Anfänger-Themen 44
H Verschiebung von Zeichen Java Basics - Anfänger-Themen 18
O String von vorne nach hinten an einem Zeichen Java Basics - Anfänger-Themen 10
S char auf buchstabe/zeichen prüfen Java Basics - Anfänger-Themen 1
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
G Teil(e) eines Strings entfernen wenn spezifische Zeichen (< & >) vorkommen Java Basics - Anfänger-Themen 5
L String auf bestimmte zeichen untersuchen Java Basics - Anfänger-Themen 9
D gebe string zurück mit von bis bestimmtes Zeichen Java Basics - Anfänger-Themen 4
L Rekursion größtes Zeichen Java Basics - Anfänger-Themen 8
S Zeichen zählen kopierter Text Java Basics - Anfänger-Themen 6
Y String auf allgemein Zeichen untersuchen Java Basics - Anfänger-Themen 3
S String trennen nach beliebigen Zeichen Java Basics - Anfänger-Themen 3
C Zeichen im String bis zu bestimmter Stelle entfernen Java Basics - Anfänger-Themen 6
S Java Text splitten mit Tabs, Zeilen, Zeichen und Klammern. Java Basics - Anfänger-Themen 6
H Zeichen im algorithmus Java Basics - Anfänger-Themen 4
S Das Anführungszeichen(") Zeichen in einen String setzen Java Basics - Anfänger-Themen 1
G Zeichen suchen und Ausgeben. Java Basics - Anfänger-Themen 3
D Input/Output Split am Zeichen | Java Basics - Anfänger-Themen 2
B zeichen eines String mit der kleinsten Frequenz zurückgeben Java Basics - Anfänger-Themen 25
m0n4ch Variablen String auf ungültige Zeichen überprüfen Java Basics - Anfänger-Themen 13
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
R Zeichen in String vergleichen Java Basics - Anfänger-Themen 75
G Gibt es eine Methode die bei einem StringBuilder n mal das Zeichen c hinzufügt? Java Basics - Anfänger-Themen 6
D String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 5
Z char Array unbekanntes Zeichen selbstständig anlegen Java Basics - Anfänger-Themen 6
M Pipe-Zeichen "|" in Java Java Basics - Anfänger-Themen 1
S Zeichen von abgerundeten Rechtecken auf einem Applet Java Basics - Anfänger-Themen 5
R Anzahl von Zeichen in einem Char Array Java Basics - Anfänger-Themen 4
F StringBuilder: Zeilenumbruch nach x Zeichen ohne Worttrennung Java Basics - Anfänger-Themen 1
F Zeichen einer Datei zaehlen Java Basics - Anfänger-Themen 1
D Java doppelte Zahl/Zeichen in einem String entfernen Java Basics - Anfänger-Themen 6
W JTextField-Objekt liest Umlaute mit falschen Zeichen ein Java Basics - Anfänger-Themen 5
G zeichen einer Zeile löschen Java Basics - Anfänger-Themen 4
M problem mit diesem zeichen | Java Basics - Anfänger-Themen 10
N Bestimmte Zeichen eines Strings umwandeln Java Basics - Anfänger-Themen 4
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
B lanterna einzelne Zeichen aus dem Terminal löschen Java Basics - Anfänger-Themen 0
S Input/Output Alphabet in eine Datei schreiben und Anzahl von Zeichen ausgeben. Java Basics - Anfänger-Themen 4
C Anzahl bestimmter Zeichen in einem String ausgeben Java Basics - Anfänger-Themen 7
I String abschneiden erste und letzte Zeichen Java Basics - Anfänger-Themen 3
X Wann schreibt man diese Syntax zeichen { } Java Basics - Anfänger-Themen 8
S Leerzeichen zwischen zwei Zeichen im String entfernen Java Basics - Anfänger-Themen 19
F Methoden split() - Mehrere Zeichen Java Basics - Anfänger-Themen 5
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
F In einem String nach einem String suchen und Zeichen danach ausgeben Java Basics - Anfänger-Themen 6
S Kleines Zeichen berechnen Java Basics - Anfänger-Themen 5
Q Erste Schritte Zeichen in String farblich hervorheben Java Basics - Anfänger-Themen 4
U markierten Text auf Zeichen zuvor/danach pruefen Java Basics - Anfänger-Themen 9
DStrohma Operatoren Kleiner-Zeichen in Größer-Zeichen ändern wenn boolen true? Java Basics - Anfänger-Themen 6
G Input/Output Verhalten BuffferedReader bei unvollständigen Zeichen Java Basics - Anfänger-Themen 1
T Auf jedes Zeichen eines Strings zugreifen? Java Basics - Anfänger-Themen 2
P String Zeichen zuweisen Java Basics - Anfänger-Themen 3
Q Erste Schritte In CharArrayWriter Zeichen an Stelle einfügen Java Basics - Anfänger-Themen 4
H Programm zum Zählen von Zeichen Java Basics - Anfänger-Themen 5
P Methode die String auf Zeichen überprüft Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben