Datentypen Überprüfen ob eine zahl bei einer vierstelligen nummer vorhanden ist

Bile Demon

Bekanntes Mitglied
Zum Beispiel mit
Code:
new Integer(1593).toString().contains("4");

Gibt sicher wesentlich bessere Lösungen.
 

VfL_Freak

Top Contributor
Moin,

also Du willst wissen, ob die Ziffer 4 als Ziffer in der Zahl enthalten ist ???:L

bspw.: zerlege die Ziffer in ihre einzelnen Stellen und prüfe dann jede Stelle
bspw.: Wandele die Ziffer in eine String um und prüfe dann jede Stelle im String

Oder poste hier Deinen konkreten bisherigen Ansatz!

Gruß
Klaus
 

x22

Bekanntes Mitglied
Du musst dir immer überlegen.. was heißt "enthält" übersetzt auf Englisch?..
.. ja.. to contain. Jetzt einfach mal logisch den Ablauf prüfen, was du tun must..:

Prüfe, ob neue EINGABEZAHL (Du musst sie nicht parsen..)die Zahl 4 (bzw den Wert) ENTHÄLT..
wenn du die Zahl eingibst, musst du jedoch beachten, dass deine Zahl als String eingelesen wird... also würde ich dir raten:

Java:
  public static void main( String[] args )
  {
	  Scanner scan= new Scanner(System.in);
	  System.out.print("Bitte Zahl eingeben: ");
	  String eingabeZahl= scan.next();

	  System.out.println(eingabeZahl.contains("4"));
  }

Best regards,
x22
 

faetzminator

Gesperrter Benutzer
Wieso nicht einfach mit % arbeiten? [c]zahl % 10[/c] gibt die letzte Ziffer zurück und [c]zahl /= 10[/c] schneidet diese dann ab. Wenn man das ganze jetzt rein theoretisch [c]while (zahl > 0) {[/c] machen würde... ach ne, war nur so eine Idee ;)

Edit:
Zum Beispiel mit
Code:
new Integer(1593).toString().contains("4");
Gibt sicher wesentlich bessere Lösungen.
Ja, bereits [c]String.valueOf(1593)[/c] ist eine wesentlich bessere Lösung als [c]new Integer(1593).toString()[/c] ;)
 
Zuletzt bearbeitet:

x22

Bekanntes Mitglied
also meine Version, die beliebige Eingabezahlen überprüfen kann & nen String prüft .. finde ich am geschicktesten :D

@TO: Du kannst immer selbst entscheiden, ob du s als String lassen willst, oder als int..
Speicherst du deine Daten jedoch in einer Datenbank und gibst dort statt text ne integer column an musst du parsen..
 

faetzminator

Gesperrter Benutzer
Es kommt immer darauf, ob es eine Zahl (IMHO Ganzzahl, int) oder ein String sein soll. Aber warscheinlich ist es eh eine Uniaufgabe und sollte wohl mit Mathematik gelöst werden. Oder täusch ich mich da?
[c]"12345".contains(xy)[/c] ist natürlich pragmatischer, aber auch teuerer.
 
D

DerTypvonvorher

Gast
Java:
		int abc =1;
		Scanner s = new Scanner(System.in);
		int eingegeben = s.nextInt();
		if(eingegeben.contains(abc)) { //Fehler
			
		}
das geht irgendwie nicht :S
 

Bile Demon

Bekanntes Mitglied
Das geht nicht weil:
Code:
public boolean contains(CharSequence s)

contains nimmt keinen int, aber z.B. einen String.

edit: und ein int hat selbstverständlich auch keine contains-Methode... *blindbin*
 

faetzminator

Gesperrter Benutzer
Wie wärs mit dem von mir vorgeschlagenen Beispiel?
Java:
public boolean containsDigit(int number, int digit) {
    if (digit < 0 || digit > 9) {
        throw new IllegalArgumentException("digit is invalid (0 to 9 is valid)");
    }
    number = Math.abs(number);
    while (number > 0) {
        if (number % 10 == digit) {
            return true;
        }
        number /= 10;
    }
    return false;
}

[c]containsDigit(1593, 4) == false[/c]
 

HPL

Aktives Mitglied
Wie kann ich überprüfen ob meine vierstellige zahl (z.b. 1593) eine 4 enthält?

Java:
import java.util.StringTokenizer;
import java.util.Scanner;

public class Test{

public static void main(String[] args){

boolean flag = true;

System.out.println("Gib eine Zahl ein!");

Scanner sc = new Scanner(System.in);

String[] toTest = sc.next().split(""); 
      


System.out.println("Welche Zahl darf nicht in der eingegebenen Zahl enthalten sein?");
           
String i = sc.next();

        for(String s : toTest){
	       if(s.equals(i)){
                              flag=false;
}

}

          if(flag==false){
	                        System.out.println("Die Zahl ist leider drin!");
}

          else{
	                        System.out.println("Die Zahl ist nicht drin!");

}
	}
}

Das wäre mal meine Lösung; sie ist natürlich nicht algebraisch, sondern bezieht sich auf den Zahlenstring, so habe ich Deine Frage verstanden. Ansonsten kann man noch mit der length()-Methode von java.lang.String prüfen, ob die eingegebene Zahl vierstellig ist.
 

Crian

Top Contributor
Boolsche Variablen per [c]== false[/c] zu testen ist schonmal schlimm. Das dann auch noch mit einem Else-Zweig zu versehen ist besonders schlimm.

Java:
if (flag) {
    System.out.println("Die Zahl ist nicht drin!");
}
else {
    System.out.println("Die Zahl ist leider drin!");
}

Nun flag noch einen sprechenden Namen geben.
 

Neue Themen


Oben