tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
493
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mad_maina mad_maina ist offline Grünschnabel
    Registriert seit
    Jul 2011
    Beiträge
    3
    Hallo zusammen, habe kleines Problem. Ich will eine Funktion schreiben, die
    einen Interger aus der Konsole ausliest, dann die Zehner und die Einerstelle analysiert und die mir natürlich zurückgibt.
    Die Sache was ich mir überlegt habe ist anstatt Integer, kann man auch einen String von der Konsole auslesen, dann zu Char-Array konwertieren und dann anhand der Unicode Zeichentabellen die einzelnen Stellen analysieren...
    das scheint mir aber zu umständlich, vielleicht kennt jemand eine elegantere Lösung.
    Danke für eure Hilfe im Vorraus
     

  2. #2
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.502
    Hi und Willkommen bei tutorials.de

    Du brauchst also nur Zehner- und Einerstelle aus einem int herausgetrennt?

    Wenn die Variable x heißt:
    Zehnerstelle: (x / 10) % 10
    Einerstelle: x % 10

    Zur Erklärung: Division bei ints ignoriert ggf. Kommastellen, schneidet sie also einfach weg.
    Und %, genannt Modulo, dividiert zwar auch, hat aber den Rest als Ergebnis.
    zB. 11%3 ist 2

    Gruß
    Geändert von sheel (22.07.11 um 00:45 Uhr)
     

  3. #3
    mad_maina mad_maina ist offline Grünschnabel
    Registriert seit
    Jul 2011
    Beiträge
    3
    Danke für die schnelle Antwort.
    Die Lösung ist super. Das mit der Einerstelle habe ich mir schon gedacht , aber auf die Zehnerstelle wäre ich nie allein gekommen. Das hilf mir auf jeden Fall weiter.
     

  4. #4
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Die Sache was ich mir überlegt habe ist anstatt Integer, kann man auch einen String von der Konsole auslesen, dann zu Char-Array konwertieren und dann anhand der Unicode Zeichentabellen die einzelnen Stellen analysieren...
    Dein Ansatz ist jedoch auch nicht so verkehrt, nur in 2 Punkten eventuell ein wenig umständlich..
    (a)
    Wieso Char-Array? Ein String besitzt auch die Methode charAt(index), also könntest du genauso gut sagen:
    Code java:
    1
    2
    
    c = s.charAt(s.length()-1); //Einerstelle
    c = s.charAt(s.length()-2); //Zehnerstelle
    (b)
    Es gibt genug Methoden, welche dir das analysieren anhand von Zeichentabellen ersparen. Es könnte z.B. so aussehen:
    Code java:
    1
    2
    
    if(Character.isDigit(c)) n = Integer.parseInt("" + c);
    else System.out.println("Das angegebene Zeichen ist keine Zahl.");
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  5. #5
    mad_maina mad_maina ist offline Grünschnabel
    Registriert seit
    Jul 2011
    Beiträge
    3
    Danke dir auch HonniCilest,

    ich glaub aber für meinen Ansatz ist der Antwort von sheel bestens geeignet, oder dein erster Antwort (a), der zweite ... ich wiess bereits das es um ein integer handelt, aber ist allgemein keine schlechte Idee

    P.S der Zitat:
    "Jeder Fehler, aus dem wir lernen, ist ein Erfolg."
    finde ich echt klasse
    ,
     

Ähnliche Themen

  1. C: Integer aus Datei auslesen
    Von Blubbdiblubb im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 01.01.10, 16:18
  2. ROUND(x, d) Long oder Integer statt Double! Liegt es an Hibernate?
    Von ThirdKeeper im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 4
    Letzter Beitrag: 13.11.09, 13:36
  3. Antworten: 1
    Letzter Beitrag: 13.01.06, 10:57
  4. String zu long oder Integer Exception
    Von UrsaMajor im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 20.08.05, 11:47
  5. Integer aus Datenbank auslesen
    Von fluessig im Forum ASP
    Antworten: 1
    Letzter Beitrag: 06.10.02, 13:35

Stichworte