Integer auslesen, mit den Zehnerstelle, oder Einerstelle weierarbeiten

mad_maina

Grünschnabel
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...:eek:
das scheint mir aber zu umständlich, vielleicht kennt jemand eine elegantere Lösung.
Danke für eure Hilfe im Vorraus
 
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ß
 
Zuletzt bearbeitet:
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.
 
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:
Java:
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:
Java:
if(Character.isDigit(c)) n = Integer.parseInt("" + c);
else System.out.println("Das angegebene Zeichen ist keine Zahl.");
 
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 :)
,
 

Neue Beiträge

Zurück