habe dieses Forum hier gerade durch google gefunden und denke das mir hier kompetent geholfen werden kann.
Wir arbeiten mit java in der Konsole.
Ich möchte nun das der Benutzer ein Integer bzw Long eingeben kann und die einzelnen Ziffern in einem Array speichern um später mit einem zweiten Integer auf gleichheit der Ziffern zu prüfen.
Hört sich kompliziert an, hier mal ein Beispiel:
Eingabe: 598746832
So und dann erfolgt noch eine eingabe:
Eingabe2: 59874
Wenn jetzt die Ziffern übereinstimmen (also die ersten 5) soll ein true ausgegeben werden andernfalls false.
Meine einzige Idee das zu realisieren ist über ein array und meine Lösung kommt mir sehr kompliziert vor. vielleicht geht es ja einfacher, ich hätte es folgendermaßen gemacht:
Integer einlesen.
Array anlegen und Integer Ziffern durch Modulo 10 in dem Array speichern
da die Ziffern dann falschherum sortiert sind mit einem neuen Array die Reihenfolge per schleife vertauschen.
Das gleiche dann für die Zweite eingabe; Am Ende würd ich dann die einzelnen array elemente vergleichen!
Okay die Methode kannte ich noch nicht, habs mittlerweile aber doch so geschrieben wie ich es mir überlegt hatte, allerdings hab ich nun nen Problem:
[Java]
public static long[] longZuArray(long zahl)
{
long[] temp = new long[10];
for(int i = 0; i<10; i++)
{
temp = zahl%10;
zahl /= 10;
}
long[] array = new long[10];
for(int i = 0; i < temp.length; i++)
{
int j = 9-i;
array = temp[j];
}
return array;
}
[/Java]
und der Aufruf
[Java]
public static void main(String args[])
{
System.out.println("Zahl: ");
long[] array = longZuArray(liesLong());
System.out.print("Als Array: ");
for(int i = 0; i < array.length; i++)
System.out.print(array);
}
[/Java]
Das Problem: Ich möchte natürlich das dies mit jeder Zahl funktioniert die ich eingebe, also nicht nur 10 Stellige. Sonst müsste ich ja zwei Methoden schreiben für unterschiedliche Längen.
Der Compiler meckert aber wenn ich das Array ohne definierte Länge erzeuge. Kann mir da jemand helfen?
Dann erstelle es doch mit der Länge der Zahl. Die einfachste (wenn auch nicht wirklich schön aussehende) wäre es zu einen String zu parsen und length() zu verwenden.
Hmm, ich versteh was du meinst, ich weiß allerdings nicht wie man das macht, soweit sind wir noch nicht. Es scheint auch deutlich einfacher zu gehen und ich denk zu kompliziert.
Ansonsten gibt es keine möglichkeit die "Länge" einer Zahl direkt auszulesen oder?
Die Aufgabe war halt:
Bauen Sie ein Modell für einen Geldautomaten. Und eine Teilaufgabe:
10 Stellige Kto.Nr und 5 Stellige Pin die genau dann richtig ist wenn die ersten 5 Ziffern der Kto mit der Pin übereinstimmen.
Das Problem: Ich möchte natürlich das dies mit jeder Zahl funktioniert die ich eingebe, also nicht nur 10 Stellige. Sonst müsste ich ja zwei Methoden schreiben für unterschiedliche Längen.