Wie kann ich eine bestimmte Ziffer aus einer Zahl auslesen in Java?
Frage 1:
Ich habe die Integer-Variable value = 2017
Außerdem deklariere ich:
int Jahrzehntzahl;
int Jahrzahl;
Nun möchte ich ich aus der Variable "value" (2017)
die ersten beiden Stellen (also 20) in die Variable "Jahrzehntzahl" (Int)
und
die letzten beiden (also 17) in die Variable "Jahrzahl" (Int) speichern.
Ergebnis wäre dann:
Jahrzehntzahl=20
Jahrzahl=17
Meine Lösungsansätze:
- Mit Bit-Position arbeiten
- Durch Division (Dieser Ansatz wäre aber deutlich länger)
Ich bevorzuge eine einfache Lösung. Wenn möglich Einzeiler.
Frage 2:
Außerdem wüsste ich gerne, wie das ganze funktioniert, wenn man mit Kommazahlen (double) arbeitet. Hier reicht mir eine Erklärung für das auslesen einer Ziffer vor und einer hinter dem Komma.
Ich freue mich auf jede Antwort
Liebe Grüße
2 Antworten
Deine "Jahrzehntzahl" ist eine eine Jahrhundertzahl.
int Jahr = 2017, Jahrhundert, Jahrzahl;
Jahrhundert = Jahr / 100;
Jahrzahl = Jahr % 100;
Da das laut deiner Angabe eine Integer-Variable ist, wird die niemals 0999 sein, sondern 999. Auch da funktioniert meine Methode, es kommt für das Jahrhundert eben (richtigerweise) 9 heraus. Wenn du eine führende Null haben möchstest, musst du es tatsächlich in einen String umwandeln.
Danke. Hast du vielleicht noch eine Idee, wo wir mit Bit-Positionen arbeiten?
Sowas wie:
value.getbit(0) und so weiter?
Int nach string casten.
String jh = String.valueOf(jahr).subString(0, 2);
String jh = String.valueOf(jahr).subString(2, 4);
Wenn wir aber den Fall haben, dass die Jahreszahl 0999 ist, dann geht das nichr mehr, da die erste eine 0 ist.
Deshalb wäre das arbeiten mit Filtern bzw. Bitweise besser.