char Einlesen und Auswerten

Kaa27

Mitglied
Hallo!

Folgendes Problem habe ich mit meinem Programm.
Ich soll einen char einlesen, der, wenn es sich um eine Ziffer (0-9) handelt, mir ausgibt, dass ich eine Ziffer eingegeben habe.

Es gibt mehrere Probleme.

1: Egal was ich eingebe, die Antwort lautet "Sie haben eine Ziffer eingegeben.
2: Möchte ich z.B. einen "else {} return false;" Teil in der static boolean einbauen. Schaffe das allerdings nicht.

3: Sieht das if( ch == 0 || ch == 1 ....) gar nicht schön aus. GIbts da was eleganteres?

Hier der Code

Java:
import java.util.Scanner;

public class A5 {

	static boolean checkDigit(char ch) {
		if (ch == 0 || ch == 1 || ch == 2 || ch == 3 || ch == 4 || ch == 5
				|| ch == 6 || ch == 7 || ch == 8 || ch == 9) {
		}
		return true;

	}

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		char ch;

		System.out.println("Eingabe einer Ziffer");
		ch = in.next().charAt(0);

		System.out.println("Hier Ihre Eingabe :" + ch);

		if (checkDigit(ch) == true) {
			System.out.println("Sie haben eine Ziffer eingegeben");
		}
		if (checkDigit(ch) == false) {
			System.out.println("Keine Ziffer");
		} else {
		}
	}

}

Beste Grüße
 

Volvagia

Top Contributor
1) char 0, 1, 2, 3, 4, 5, 6, 7, 8 und 9 sind alles keine Ziffern.
2) Du gibst ja auch immer true zurück. Im Statement der if steht nichts drinnen.
3) Character.isDigit ist eine spur kürzer.
4) "else return(false)" ist unnötig. Warum wertest du in der if eine boolean aus und gibst dann eine andere zurück?
5) Du solltest die Eingabe erst validatieren, bevor du einen char davon holst.
6) "boolean == true" ist recht unschön.
7) Die ifs mit der Ausgabe ebenfalls. Eine Boolean hat nur maximal 2 Zustände.
 
Zuletzt bearbeitet:

Kaa27

Mitglied
Uff uff uff. Eine Menge abzuarbeiten.

Also. Das 0-9 keine Ziffern sind, sondern char´s ist mir bewusst.
Ich dachte das wenn ich sage ch == '0' (jetzt mit anführungsstrichen, was aber auch nichts bringt)
das Programm guckt ob die Eingabe genau 0 (bzw. der char genau 0) ist. Und dann soll er true zurück geben.

Zu dem Punkt das in der if {Anweisung} nichts steht, kann ich nur sagen, dass ich nicht weis was ich da rein schreiben soll. Also klar, eine anweisung, aber ich möchte ja eigentlich nur ein true/false zurück geben.

Punkt 4 ist klar.


Steh grad etwas auf den Schlauch.
 

AquaBall

Top Contributor
Uff uff uff. Eine Menge abzuarbeiten.

Also. Das 0-9 keine Ziffern sind, sondern char´s ist mir bewusst.
Ich dachte das wenn ich sage ch == '0' (jetzt mit anführungsstrichen, was aber auch nichts bringt)
das Programm guckt ob die Eingabe genau 0 (bzw. der char genau 0) ist. Und dann soll er true zurück geben.

Zu dem Punkt das in der if {Anweisung} nichts steht, kann ich nur sagen, dass ich nicht weis was ich da rein schreiben soll. Also klar, eine anweisung, aber ich möchte ja eigentlich nur ein true/false zurück geben.

Punkt 4 ist klar.


Steh grad etwas auf den Schlauch.

Code:
ch == '0' (jetzt mit anführungsstrichen)
bringts eben schon, wenn das if richtig ist!


Code:
if (...) {
   return ...
}
 

Volvagia

Top Contributor
Es funktioniert wegen Punkt 2 nicht:

Java:
static boolean checkDigit(char ch) {
	if (ch == 0 || ch == 1 || ch == 2 || ch == 3 || ch == 4 || ch == 5
        	|| ch == 6 || ch == 7 || ch == 8 || ch == 9) {
		//Hier steht nichts
	}
	return true; //Das wird immer zurückgegeben.
}

Besser wäre es so:

Java:
static boolean checkDigit(char ch) {
	if (ch == '0' || ch == '1' || ch == '2' || ch == '3' || ch == '4' || ch == '5'
        	|| ch == '6' || ch == '7' || ch == '8' || ch == '9') {
		return(true);
	}
	return(false);
}

Noch besser so:

Java:
static boolean checkDigit(char ch) {
	return(ch == '0' || ch == '1' || ch == '2' || ch == '3' || ch == '4' || ch == '5'
        	|| ch == '6' || ch == '7' || ch == '8' || ch == '9');
}

Und am Besten so: (Sofern das von der Aufgabenstellung her erlaubt ist)

Java:
static boolean checkDigit(char ch) {
	return(Character.isDigit(ch));
}

Gäbe noch die Möglichkeit zu prüfen, ob der char >= '0' und <= '9' ist, finde ich aber nicht so schön.
 

Kaa27

Mitglied
Oha. Das sieht doch sehr ordentlich aus. Die letzte Version war mir quasi total unbekannt.

Merci

(btw. das war keine hausaufgabe o.ä. Reine Übung)
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

Also. Das 0-9 keine Ziffern sind, sondern char´s ist mir bewusst.
Ist vlt. ein wenig OffTopic, aber gewissermaßen sind es natürlich (auch) Zahlen ... Hexadezimal-Zahlen ;)
Du hättest es nämlich auch so schreiben können:
Java:
return( ch = 0x30 || ch = 0x31 || ch = 0x32  ... usw. );
Alles Frage der Werteinterpretation :)

Aber das Prüfen mit den erwähnten "checkDigit" ist natürlich um Längen eleganter :toll:

Gruß
Klaus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C (char) Array einlesen Java Basics - Anfänger-Themen 8
B Methoden Einen Char einlesen ohne Enter abzuwarten Java Basics - Anfänger-Themen 4
Semox Datentypen Einlesen von char in Array schlägt unerwartet fehl Java Basics - Anfänger-Themen 4
B Einlesen von double und char(?) Java Basics - Anfänger-Themen 2
Jen Array einlesen, Int und Char Java Basics - Anfänger-Themen 57
J Daten von einem (char*)Socket einlesen. Java Basics - Anfänger-Themen 3
0 Textdatei in Char[] einlesen ? Java Basics - Anfänger-Themen 3
ven000m Char einlesen, wie ging das nochmal? Java Basics - Anfänger-Themen 9
R char einlesen Java Basics - Anfänger-Themen 6
R char einlesen Java Basics - Anfänger-Themen 3
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
W char über die Konsole? Java Basics - Anfänger-Themen 7
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
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

Ähnliche Java Themen

Neue Themen


Oben