Zahl in einzelne Ziffern zerlegen
lima-city → Forum → Programmiersprachen → Java
arbeiten
array
aufgabe
code
einzelnen ziffern
freuen
funktion
helfen
http
idee
jemand
kette
mache
speichern
string
trennen
url
zahl
zerlegen
ziffer
-
Hallo.
Ich muss für die Uni eine Funktion schreiben, die eine Zahl auf ihre Fröhlichkeit untersucht. Wie das geht ist in der Aufgabe kurz erklärt. Auf jeden Fall muss man dafür die Dezimalzahl in ihre einzelnen Ziffern zerlegen und dann mit den Ziffern weiter arbeiten. Wie ich mit den Ziffern weiter mache, weiß ich, aber ich habe keine Idee, wie ich an die einzelnen Ziffern komme. Kann man die Ziffern irgendwie trennen und in ein array speichern?
Also das z.B. aus der Zahl 122 das wird:
ziffer[0] = 1;
ziffer[1] = 2;
ziffer[2] = 2;
Ich würde mich freuen, wenn mir dabei jemand helfen kann.
Viele Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das einfachste wird sein, die Zahl in einen String umzuwandeln, den String dann in eine Char-Kette und die Char-Kette dann in Zahlen:
int zahl = 122; String tmpString = "" + zahl; int[] zahlArray = int[tmpString.length()]; for (int i=0;i<tmpString.length();i++) { zahlArray[i] = Integer.parseInt(tmpString.charAt(i)); }
Liebe Grüße -
Hast du auch schon mal versucht zu googeln.
Denn Google weiß fast alles.
Denn wenn man z.B. eingibt js zahl in einzelne ziffern zerlegen
Kommen 12.400.000 ergebnisse raus und schon auf den ersten beiden Seiten ist schon eine Menge hilfe z.B.
z.B. In dem Board
Php.de
MfG willstdueswissen
-
@ ggamee: Danke für die Antwort. Aber da ist noch etwas falsch. Bei mir kommt folgende Fehlermeldung:
aufgabe4.java:4:27: error: ']' expected
int[] zahlArray = int[tmpString.length()];
^
aufgabe4.java:4:45: error: ';' expected
int[] zahlArray = int[tmpString.length()];
^
@ willstdueswissen:
1. Es handelt sich um Java und nicht um Javascript.
2. Natürlich habe ich bereits gegoogelt, aber nichts passendes gefunden.
3. Kommentare, die aufs googeln hinweisen, kannst du dir also sparen, da sie einem kein bisschen weiter helfen.
-
Okay okay schuldigung aber trotzdem Funktioniert meißtens Js auch als Java code muss man nur unconfigurieren.
1. Es handelt sich um Java und nicht um Javascript.
Das wusste ich ja nicht Schuldigung
2. Natürlich habe ich bereits gegoogelt, aber nichts passendes gefunden.
3. Kommentare, die aufs googeln hinweisen, kannst du dir also sparen, da sie einem kein bisschen weiter helfen.
Wäre es Js würde es helfen
Aber ich glaub ich weiß wo das Problem in dem Code liegt:
ggamee schrieb:
Das einfachste wird sein, die Zahl in einen String umzuwandeln, den String dann in eine Char-Kette und die Char-Kette dann in Zahlen:
int zahl = 122; String tmpString = "" + zahl; int[] zahlArray = int[tmpString.length()]; for (int i=0;i<tmpString.length();i++) { zahlArray[i] = Integer.parseInt(tmpString.charAt(i)); }
Hier zu:
Ein Array macht meiner meinung nach so
int[] zahlArray = new int[tmpString.length()];
Also einfach en new davor
MfG willstdueswissen
P.s. Und noch mal Schuldigung
Beitrag zuletzt geändert: 19.11.2013 15:31:05 von willstdueswissen -
Ok kein Problem :) Das mit dem new davor habe ich auch schon probiert. Dann kommt folgende Fehlermeldung:
aufgabe4b.java:6:29: error: no suitable method found for parseInt(char)
zahlArray = Integer.parseInt(tmpString.charAt(i));
^
method Integer.parseInt(String) is not applicable
(actual argument char cannot be converted to String by method invocation conversion)
method Integer.parseInt(String,int) is not applicable
(actual and formal argument lists differ in length)
-
Tut mir leid, willstdueswissen hat natürlich recht, da muss ein "new" vor das Array.
Außerdem ist mir aufgefallen, dürfte es von Integer.parseInt() keine Variante geben, die ein Char entgegen nimmt.
Daher habe ich den Code hier nochmal korrigiert:
int zahl = 122; String tmpString = "" + zahl; int[] zahlArray = new int[tmpString.length()]; for (int i=0;i<tmpString.length();i++) { zahlArray[i] = Integer.parseInt(tmpString.substring(i, i+1)); } System.out.println(zahlArray[0]); System.out.println(zahlArray[1]); System.out.println(zahlArray[2]);
Unzwar habe ich nun ein "new" hinzugefügt, vor das int[], damit auch ein Array erstellt wird. Und ich habe das charAt(i) ersetzt durch ein substring(i,i+1). Der Unterschied ist, dass charAt ein Char zurück gibt, und substring einen String. Für Integer.parseInt() benötigt man einen String.
Liebe Grüße -
Ich kann weder Java richtig, noch kenne ich fröhliche Zahlen, aber ich kann eine Suchmaschine bedienen
Das erste Ergebnis scheint mir sehr brauchbar, da es nicht den Umweg über eine Verstümmelung zur Zeichenkette geht, sondern lediglich Ganzzahl-Berechnungen verwendet, was mir wesentlich eleganter erscheint!
http://stackoverflow.com/questions/3389264/how-to-get-the-separate-digits-of-an-int-number
Beitrag zuletzt geändert: 19.11.2013 15:51:57 von burgi -
@ ggamee:
Vielen Dank! Das mit dem substring(i, i+1) habe ich auch ausprobiert, aber mit meiner Variante kamen irgendwie nur Nullen ins array, so wie du es gemacht hast klappt es jetzt. Danke nochmal! -
Sofern die "Zahl" in Form eines Zahlen-Datentyps, nicht als String, daherkommt geht's auch viel einfacher:
Pseudocode für positive Zahlen:
while (zahl > 0) { ziffer = zahl % 10 print ziffer zahl = zahl / 10 }
% = Modulo-Funktion
That's it.
10 ist übrigens die Zahlenbasis des Dezimalsystems.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage