Ziffer einer Int größer als x?

sicLotus

Bekanntes Mitglied
Hallo!

Ich habe eine Integer Zahl und möchte überprüfen ob "irgendeine" Ziffer der Zahl größer als ein bestimmtes "x" ist.

Beispiel:
Die Zahl: 461
x: 5

Dann soll die Methode/Abfrage ausschlagen und sagen: "Fehler, da eine Ziffer größer als 5 ist"

Ich weiß noch keine wirklich gute Möglichkeit... eine wäre das ich mir die Zahl in nen String parse, diese dann per toCharArray() in ein Array schreibe und dieses dann einzeln durchgehe und für jeden Wert überprüfe...

Find ich recht umständlich und wollte fragen ob ihr nicht eine simple Methode kennt, oder ob die API von JAVA nicht irgendwas hergibt.

Herzlichen Dank schon mal
 
Eine einfache if-abfrage wäre hier meinesachtens eigentlich die einfachste lösung 🙂
solange dir beide zahlen als integer vorliegen sollte das so hinhauen


Code:
 ! PSEUDOCODE ! 

if input <= x{
do something
}
else
{
do something other
}
 
Warum eine Zahl in einen String umwandeln, wenn man mit Zahlen eh besser rechnen kann.
Java:
        int zahl = 465;
        int x = 5;
        
        int count=0;
        while(zahl>0) {
            int rest = zahl%10;
            zahl /=10;
            if (rest>x) {
                System.out.println(rest + " ist groesser als " + x);
                count++;
            }
            else
                System.out.println(rest + " ist kleiner gleich " + x);
        }
        System.out.println("Es wurden "+ count + " Ziffer(n) gefunden, die groesser als " + x + " sind.");
 
Eine einfache if-abfrage wäre hier meinesachtens eigentlich die einfachste lösung 🙂
solange dir beide zahlen als integer vorliegen sollte das so hinhauen


Code:
 ! PSEUDOCODE ! 

if input <= x{
do something
}
else
{
do something other
}

aeh? wo ist da die abfrage der einzelnen ziffern?!?


Warum eine Zahl in einen String umwandeln, wenn man mit Zahlen eh besser rechnen kann.
Java:
        int zahl = 465;
        int x = 5;
        
        int count=0;
        while(zahl>0) {
            int rest = zahl%10;
            zahl /=10;
            if (rest>x) {
                System.out.println(rest + " ist groesser als " + x);
                count++;
            }
            else
                System.out.println(rest + " ist kleiner gleich " + x);
        }
        System.out.println("Es wurden "+ count + " Ziffer(n) gefunden, die groesser als " + x + " sind.");

Das sieht gut aus, denke das werd ich mal ausprobieren, danke schonmal..

hätte gedacht es gibt vllt irgendwas aus der api wie ich an die einzelnen ziffern komme.. wie z.B. über charAt oder so
 
Was willst du denn mit den einzelnen Ziffern???

Wie wäre es einfach, die Eingabe in eine Zahl parsen, dann kannst du doch gleich ganz einfach vergleichen.

edit: ach quatsch, hab die Aufgabe falsch verstanden. :-(
 
Zuletzt bearbeitet:
Es geht darum, dass ich Zahlensystemumwandlung machen möchte...
Also vom binär zu oktal, von dezimal ins hexadezimal etc..

Nun ist es halt so, dass im binär nur die Ziffern 0,1 erlaubt sind, bei oktal nur 0-7 etc..
Wenn der User jetzt also eine 8 für Oktal eingibt, möchte ich einfach eine Exception werfen.. Deshalb muss ich an die einzelnen Ziffern rankommen und kann nicht einfach die gesamte Zahl nehmen..
 
Entweder nimmste die Variante von michael (wenn du mit ints arbeiten möchtest), oder du machst es mit charAt:

Java:
        int number = 12345;

        String s = String.valueOf(number);
        for (int i = 0; i < s.length(); i++) {
            int digit = Integer.parseInt(String.valueOf(s.charAt(i)));

            System.out.println("Zahl an Stelle " + i + ": " + digit);
        }
 

Zurück
Oben