Prüfen ob ein Zeichen eine Zahl ist
-
Hallo,
ich muss überprüfen, ob ein Zeichen eine Zahl ist, dies habe ich versucht:
if (!Character.isDigit(aux))
{
// ....
}Dies funktioniert aber nicht. Wie muss der Code richtig lauten?
Mäusefänger
-
Das führt den Inhalt der Schleife aus, wenn es KEIEN Zahl ist. Ansonsten ist Character.isDigit definitiv die richtige Wahl.
-
Hi,
dies hilft mir auch nicht weiter.
Ich will einfach nur eine if anweisung, die mir entweder ist integer oder ist nicht integer anzeigt.
wie kann ich das machen?
mausefänger
-
Ist doch ganz einfach, sei c der char:
if (Character.isDigit(c)) {
System.out.println("Ist Ziffer");
} else {
System.out.println("Ist keine Ziffer");
}oder was versuchst du bzw. was ging bei dir nicht?
-
Hallo,
folgende Fehlermeldung:
isDigit(char) in java.lang.Character cannot be applied to (java.lang.string)
haben aber ganz oben im programm folgende zeile:
import java.io.*;
Oder muss ich was anderes einbinden?
Mausefänger
-
Dann musst du eben schreiben:
if (Character.isDigit(deinString.charAt(0))) { [...] }
-
isDigit(char) in java.lang.Character cannot be applied to (java.lang.string)
Ganz offentsichtlich versuchst Du als input für isDigit() einen String (Zeichenkette) zu verwenden. Die Fehlermeldung zeigt Dir, dass er als input aber ein char (einzelnes Zeichen) erwartet. Deswegen solltest Du alle Zeichen Deines Strings nacheinander überprüfen, ob sie jeweils eine Zahl sind.
Probiere doch mal den folgenden Code aus, vielleicht hilft er Dir ja weiter:public static void main (String args[]) { String aux = "1A2B3C4D5E" ; int val_aux = 0 ; String ohneBuchstaben = "" ; for (int i = 0 ; i < aux.length() ; i++) { // do sthg if char is digit if (Character.isDigit(aux.charAt(i))) { System.out.println (aux.charAt(i) + " ist eine Zahl") ; val_aux = val_aux * 10 + (aux.charAt(i) - '0') ; ohneBuchstaben += aux.charAt(i) ; } // do sthg if char isn't digit else { System.out.println (aux.charAt(i) + " ist keine Zahl") ; } } System.out.println (val_aux) ; int val_ohneBuchstaben = Integer.parseInt (ohneBuchstaben) ; System.out.println (val_ohneBuchstaben) ; }
[ Dieser Beitrag wurde am 23.05.2003 um 12:49 Uhr von own editiert. ]
-
Hi Mäusefänger,
wenn du nix zu tun hast, dann google mal nach "endliche Automaten".
Das ist ein recht interessantes Thema und
das Standard-Einführungsbeispiel ist meistens genau dein Problem.
Zumindests, wenn du auch solche Sachen wie
123.45 ist Zahl, 12.3.45 ist keine Zahl,...
brauchst.Jockel