char über die Konsole?

Wuast

Bekanntes Mitglied
Hallo,
wie kann ich einen einzelnen Char über die Konsole eingeben und auch als char speichern? Da ich diesen später mit einem charAt() in einem String vergleichen möchte und ich einen String nicht mit einem char vergleichen kann (oder?? - zumindest will weder == noch equals), habe ich es z.B. so versucht:

Java:
        // am Anfang erfolge import java.io.InputStreamReader; für die Klasse reader
            
        Reader huntedCharTemp = new InputStreamReader(System.in);
        int characterAsInt = huntedCharTemp.read();
        char huntedchar = (char) characterAsInt;

geht nicht. Mit
Java:
char huntedChar = new java.util.Scanner(System.in).nextChar();
leider auch nicht.

Bin für Hinweise wie immer äußerst dankbar :) LG Yannik
 

Robertop

Bekanntes Mitglied
Also ich muss ja zugeben, ich würde es mir ganz einfach machen und einfach erstmal mit dem normalen Scanner.nextLine einlesen und dann zum Vergleichen das erste char da rausnehmen:

Java:
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
if (input.charAt(0) == 'A') {
    // ...
}

Der Vorteil, den ich hier sehe, ist, dass du noch mit dem input rumspielen kannst, um zum Beispiel falsche Eingaben zu erkennen. Und dadurch, dass man die Eingabe mit Return bestätigen muss, kann der Benutzer einen eventuellen Tippfehler auch noch korrigieren.
 

Wuast

Bekanntes Mitglied
Also ich muss ja zugeben, ich würde es mir ganz einfach machen und einfach erstmal mit dem normalen Scanner.nextLine einlesen und dann zum Vergleichen das erste char da rausnehmen:

Java:
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
if (input.charAt(0) == 'A') {
    // ...
}

Der Vorteil, den ich hier sehe, ist, dass du noch mit dem input rumspielen kannst, um zum Beispiel falsche Eingaben zu erkennen. Und dadurch, dass man die Eingabe mit Return bestätigen muss, kann der Benutzer einen eventuellen Tippfehler auch noch korrigieren.
Nun der Gedanke ist, dass ein Programmnutzer einen String und Buchstaben über die Konsole eingeben können soll. Das Programm soll dann in dem String den Buchstaben suchen und angeben, wie oft er vorkommt. Die Suche kann mittels dem charAt und einer Schleife und dem " == " erfolgen denke ich. Nur wie bekomme ich einen Buchstaben (ein char) in eine Variable, die ich dann an die Stelle setzen kann, an der dein 'A' steht?

Hier das, was ich bisher habe:
Java:
String input = new java.util.Scanner(System.in).nextLine();        // Stringeingabe über die Konsole
   
//hier kommt das, womit ich nicht weiter komme
    Reader huntedCharTemp = new InputStreamReader(System.in);    // das ist der Versuch einen
    int characterAsInt = huntedCharTemp.Reader();                // char mittels Konsoleneingabe in
    char huntedchar = (char) characterAsInt;                    // eine Variable zu speichern
//hier endet das, womit ich nicht weiter komme      
       
    int counter = 0;                                            // Zählvariable, um die Anzahl der Buchstaben ausgeben zu können
       
    for (int i = 0; i < input.length(); i++) {
           
        if (input.charAt(i) == huntedChar) {
                counter++;
            }
        }
        System.out.println("Das Eingegebene Wort " + input + " enthält den gesuchten Buchstaben " + huntedChar + counter + " mal!");

=)
 

mihe7

Top Contributor
@Wuast, Du hast @Robertop falsch verstanden. Er meint, Du sollst einfach eine weitere Zeile einlesen und von dieser das erste Zeichen verwenden.

Quick & Dirty:
Java:
Scanner sc = new Scanner(System.in);

System.out.print("Zu durchsuchender Text: ");
String input = sc.nextLine();
System.out.print("Zu suchendes Zeichen: ");
char huntedChar = sc.nextLine().charAt(0);

Dann hast Du einmal in input den zu durchsuchenden Text und einmal in huntedChar das zu suchende Zeichen.
 
K

kneitzel

Gast
Generell auch der wichtige Hinweis:
Die Console in Java kann keine Eingabe von einzelnen Zeichen verarbeiten! Eine Eingabe kann erst gelesen werden, wenn der Anwender die Return Taste gedrückt hat und dann wird die ganze getätigte Eingabe an den Stream gesendet.

Das ist ein wichtiger Punkt. Andere Sprachen bietet hier deutlich mehr. In C wäre das dann ein getch() aus stdio.h, welches einen direkten Tastendruck auswerten kann. (Also Nutzer drückt nur eine Taste z.B. 'a' und diese Eingabe wird sofort gelesen per getch() Aufruf.

Da dies in Java nicht zur Verfügung steht, bleibt also nur das Einlesen von ganzen Strings übrig.
Der Benutzer gibt irgendwas ein und drückt dann Enter. Das Ergebnis ist ein String. Er kann leer sein oder mehrere Zeichen beinhalten. Diese Zeichenkette wird eingelesen. Daran führt erst einmal kein Weg vorbei. (Zumindest was Eingaben angeht. Sobald es um reine Binary Daten geht, sieht es etwas anders aus, aber das interessiert jetzt hier nicht.)

Diesen String kann man dann aber weiter Verarbeiten. Hier wäre Scanner ein Beispiel, das hier dann aus dem String Token bilden kann um die Token dann in unterschiedlichen Typen zu wandeln und so zu lesen.
 

Wuast

Bekanntes Mitglied
@Wuast, Du hast @Robertop falsch verstanden. Er meint, Du sollst einfach eine weitere Zeile einlesen und von dieser das erste Zeichen verwenden.

Quick & Dirty:
Java:
Scanner sc = new Scanner(System.in);

System.out.print("Zu durchsuchender Text: ");
String input = sc.nextLine();
System.out.print("Zu suchendes Zeichen: ");
char huntedChar = sc.nextLine().charAt(0);

Dann hast Du einmal in input den zu durchsuchenden Text und einmal in huntedChar das zu suchende Zeichen.
Wow, ja klar.. :) Manchmal habe ich Tomaten auf den Augen und einen Furz im Gehirn... Danke fürs übersetzen und danke Robo für den Tipp.
Generell auch der wichtige Hinweis:
Die Console in Java kann keine Eingabe von einzelnen Zeichen verarbeiten! [...]

Der Benutzer gibt irgendwas ein und drückt dann Enter. Das Ergebnis ist ein String. Er kann leer sein oder mehrere Zeichen beinhalten. Diese Zeichenkette wird eingelesen. Daran führt erst einmal kein Weg vorbei. (Zumindest was Eingaben angeht. Sobald es um reine Binary Daten geht, sieht es etwas anders aus, aber das interessiert jetzt hier nicht.)

Diesen String kann man dann aber weiter Verarbeiten. Hier wäre Scanner ein Beispiel, das hier dann aus dem String Token bilden kann um die Token dann in unterschiedlichen Typen zu wandeln und so zu lesen.
Super Hinweis. Dass es ohne Enter nicht geht habe ich gemerkt, aber das es immer ein String ist war mir nicht klar. D.h. dann wenn ich einen (System.in).nextInt() oder .nextDouble habe, ist es auch ein String und wird dann umgewandelt von der Klasse Scanner?!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
D 2D Char Array into String Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
Tommilee Char ausgeben Java Basics - Anfänger-Themen 5
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
P9cman Char Index rekursiv finden Java Basics - Anfänger-Themen 4
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
C String/Char-API Java Basics - Anfänger-Themen 13
U Char zu einem String machen Java Basics - Anfänger-Themen 1
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
C char c Java Basics - Anfänger-Themen 13
D String und char in String speichern Java Basics - Anfänger-Themen 5
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
P Methoden Namen trennen mit .substring(), char.At(), .lenght() Java Basics - Anfänger-Themen 8
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
A Datentyp char Java Basics - Anfänger-Themen 27
A Char und modulo Java Basics - Anfänger-Themen 8
A char array wird überschrieben Java Basics - Anfänger-Themen 6
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
D Datentypen Char deklaration Java Basics - Anfänger-Themen 4
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
I char Array to String Java Basics - Anfänger-Themen 3
C (char) Array einlesen Java Basics - Anfänger-Themen 8
J Java char.at() Probelm Java Basics - Anfänger-Themen 12
S char auf buchstabe/zeichen prüfen Java Basics - Anfänger-Themen 1
H char-Array Java Basics - Anfänger-Themen 22
M Die länge von char Java Basics - Anfänger-Themen 6
T Methoden char wird nicht ausgegeben Java Basics - Anfänger-Themen 3
R Fehler bei ASCII Char zu Int Umwandlung Java Basics - Anfänger-Themen 2
C Methoden String in char Array Java Basics - Anfänger-Themen 3
T Datentypen char als Buchstaben statt als Zahl ausgeben Java Basics - Anfänger-Themen 4
kokojamboo92 char mehrfach ausgeben.. Java Basics - Anfänger-Themen 2
T Erste Schritte Char 'Anführungszeichen' Tastaturkürzel Java Basics - Anfänger-Themen 1
H Compiler-Fehler Out of Bunce Exception bei einem Char Java Basics - Anfänger-Themen 6
E Wie wird in Java ein Char-Array terminiert ? Java Basics - Anfänger-Themen 15
C char in String suchen und durch anderen String ersetzen Java Basics - Anfänger-Themen 2
C Compiler-Fehler from int to char Java Basics - Anfänger-Themen 2
A Methoden Char-Arrays auf aufeinanderfolgende Elemente vergleichen! Java Basics - Anfänger-Themen 7
T Object zu Char zu String Java Basics - Anfänger-Themen 6
W Char Array bearbeiten Java Basics - Anfänger-Themen 6
A Char-Array erstellen Java Basics - Anfänger-Themen 35
D Hilfe bei int wert von char Java Basics - Anfänger-Themen 7
W String auf char[] umwandeln Java Basics - Anfänger-Themen 3
Z char Array unbekanntes Zeichen selbstständig anlegen Java Basics - Anfänger-Themen 6
M Bestimmen, wie oft ein Char in einem Array vorkommt Java Basics - Anfänger-Themen 2
BuTTerBroTHDx Char Wert in int casten ? Java Basics - Anfänger-Themen 4
D Variablen Variable char vergleichen Java Basics - Anfänger-Themen 5
A Probleme beim Methodenaufruf von char[] ! Java Basics - Anfänger-Themen 10
C char array-positionstausch Java Basics - Anfänger-Themen 6
R Anzahl von Zeichen in einem Char Array Java Basics - Anfänger-Themen 4
C String-zaehleZeichen(String str,char[]c) Java Basics - Anfänger-Themen 9
L zweidimensionales char array reihenfolge ändern ? Java Basics - Anfänger-Themen 2
D Best Practice String aufbau - Char Array oder Anhängen Java Basics - Anfänger-Themen 11
S For Schleife Char Array Java Basics - Anfänger-Themen 1
V char Eingabe aber nur für Buchstaben Java Basics - Anfänger-Themen 4
K PasswordField auslesen und in char speichern Java Basics - Anfänger-Themen 2
L Frage zum Zeichensatz Char Java Basics - Anfänger-Themen 2
L Frage zum Typ Char (Zeichensatz) Java Basics - Anfänger-Themen 8
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
P Char aus einem String auswählen Java Basics - Anfänger-Themen 4
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
J Buchstabe (char) an zufällige Position eines Strings einfügen Java Basics - Anfänger-Themen 1
B char Array mit ints Java Basics - Anfänger-Themen 7
F Char in Long umwandeln? Java Basics - Anfänger-Themen 2
J Char-Array - NullPointerException Java Basics - Anfänger-Themen 3
X Compiler-Fehler Possible loss of precision bei addition von int und char Java Basics - Anfänger-Themen 5
J char-Array rückwärts ausgeben und in neues Char-Array speichern Java Basics - Anfänger-Themen 3
D Methode die statt char[] ein "null" zurück gibt Java Basics - Anfänger-Themen 8
P Methoden suche funktion die char wert ausgibt wenn man numerischen wert und radix angibt Java Basics - Anfänger-Themen 1
R Char wird in System.out.print(); nicht ausgegeben Java Basics - Anfänger-Themen 6
J Char-Rechnen Java Basics - Anfänger-Themen 8
E Input/Output convert string to two dimensional char and output = matrix Java Basics - Anfänger-Themen 2
S Array - index von Benutzer eingegebenen char ausgeben Java Basics - Anfänger-Themen 3
M char Array füllen Java Basics - Anfänger-Themen 2
H ArrayList mit char- Array befüllen Java Basics - Anfänger-Themen 12
S überschneidende Char-Arrays, zu einem Längeren verbinden Java Basics - Anfänger-Themen 7
M Warum ist char a + char b 196 Java Basics - Anfänger-Themen 4
J Datentypen Cast von int zu char führ zu 'Sonderzeichen' Java Basics - Anfänger-Themen 2
M Erste Schritte konvertierung von int zu char Java Basics - Anfänger-Themen 3
B Char-Vergleich Sonderzeichen Java Basics - Anfänger-Themen 6
A Char Bytes Umwandlung und Darstellung Java Basics - Anfänger-Themen 3
R Input/Output einzelnes char aus .txt lesen Java Basics - Anfänger-Themen 11
P Datentypen String auf JTextField wird zu Char-Array und anschließend zu int Java Basics - Anfänger-Themen 12
M String in char-weise vergleichen und ausgeben Java Basics - Anfänger-Themen 5
V while verlassen, char Java Basics - Anfänger-Themen 2
S Datentypen Ein String in ein Char und ein Double wandeln Java Basics - Anfänger-Themen 2
A Char to String Java Basics - Anfänger-Themen 5
R Erste Schritte Rechnenoperationen mit byte, short und char Java Basics - Anfänger-Themen 8
W Char als Int speichern Java Basics - Anfänger-Themen 10
W Variablen Rechnen mit "char" Java Basics - Anfänger-Themen 2
G Char und Strings Java Basics - Anfänger-Themen 21
K char Einlesen und Auswerten Java Basics - Anfänger-Themen 9
N KeyStrok und char Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben