Überprüfen, ober eine Zahl Ziffer enthält

Adriano10

Bekanntes Mitglied
Ich versuche herauszufinden, ob eingegeben Zahl Ziffer zwischen 0 und 9 enthält, leider klappt es nicht, falls jemand Lust hat, mir zu helfen, wäre ich sehr sehr dankbar

public static void main(String[] args) {
int zahl = IO.readInt("Belibiege Zahl eingeben ");
int ziffer = IO.readInt("Belibiege Ziffer eingeben ");
int result = 0;




while(zahl > 0) {
result = zahl % 10;
zahl /= 10;

if(result == ziffer) {
System.out.println("Enthalten");
break;
}else{
System.out.println("Nich enthalten");
break;
}
}
}
 
Deine Schleife läuft genau 1 mal durch, weil du sowohl im if als auch im else Fall die Schleife durch das break verlässt.
 
int zahl = IO.readInt("Belibiege Zahl eingeben ");
int ziffer = IO.readInt("Ziffer zwischen 0 und 9 eingeben ");
int result = 0;

boolean gela = true;


while(zahl > 0) {
result = zahl % 10 +;
if(result == ziffer) {
gela = true;
}else {
gela = false;
zahl /= 10;

}

if(gela) {
System.out.println("Enthalten");
}else {
System.out.println("Nicht Enthalten");
}

}




}
 
Dein Code funktioniert nur wenn die letzte Zahl gleich der gesuchten Zahl ist. Sobald du einen Treffer hast darf der boolean nicht mehr überschrieben werden
 
O Gott, wieso nicht klappt

int zahl = IO.readInt("Belibiege Zahl eingeben ");
int ziffer = IO.readInt("Ziffer zwischen 0 und 9 eingeben ");
int result = 0;
String summe = "";
boolean gela = true;


while(zahl > 0) {
summe = zahl % 10 + summe;
zahl /= 10;

}
char[] zahlen = summe.toCharArray();
for(int i = 0; i < zahlen.length; i++) {
if(zahlen == ziffer) {
System.out.println("Enthalten");
}else {
System.out.println("Nicht Enthalten");
}
}






}
 
Wieso nicht einfach

int zahl = IO.readInt("Belibiege Zahl eingeben ");
int ziffer = IO.readInt("Ziffer zwischen 0 und 9 eingeben ");

if( Integer.toString(zahl).contains(Integer.toString(ziffer))) {
System.out.println("Enthalten");
} else {
System.out.println("Nicht enthalten");
}
 
Java:
public static boolean zahlEntaeltZiffer(int zahl, char ziffer) {
        return (zahl + "").contains(ziffer + "");
    }
 
Wenn hier jetzt schon wie wild Lösungen gepostet werden, dann noch eine die deinem ersten Ansatz entspricht:
Java:
int zahl = 599;
int ziffer = 6;
int result = 0;
boolean found = false;

while(zahl > 0) {
    result = zahl % 10;
    zahl /= 10;

    if(result == ziffer) {
        found = true;
        break;
    }
}
if(found) {
    System.out.println("Zahl enthalten"); 
} else {
    System.out.println("Zahl nicht enthalten"); 
}
 

Zurück
Oben