kostenloser Webspace werbefrei: lima-city


Zahl in einzelne Ziffern zerlegen

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g****e

    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
  4. willstdueswissen

    Kostenloser Webspace von willstdueswissen

    willstdueswissen hat kostenlosen Webspace.

    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
  5. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    @ 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.

  6. willstdueswissen

    Kostenloser Webspace von willstdueswissen

    willstdueswissen hat kostenlosen Webspace.

    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:wave:

    Beitrag zuletzt geändert: 19.11.2013 15:31:05 von willstdueswissen
  7. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    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)


  8. g****e

    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
  9. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    Ich kann weder Java richtig, noch kenne ich fröhliche Zahlen, aber ich kann eine Suchmaschine bedienen :cookie:
    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
  10. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    @ 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!
  11. 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.
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!