Springen naar inhoud

Java: Hoe haal ik de duizendtallen, honderdtallen etc. uit getallen?


  • Log in om te kunnen reageren

#1

Yamayamauchiman

    Yamayamauchiman


  • 0 - 25 berichten
  • 19 berichten
  • Gebruiker

Geplaatst op 03 juli 2013 - 22:14

Hey, als oefening moet ik -nadat een getal ingegeven wordt- laten zien wat de duizendtallen, de honderdtallen, de tientallen en de eenheden zijn.
Ik heb al deze code geschreven, maar ik weet niet hoe ik dat exact doe.

http://gyazo.com/4c3...597546d9a46.png

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 03 juli 2013 - 22:26

Ken je modulorekenen? Denk dan eens na over het effect van bijv mod 1000 en het nut daarvan om je duizendtal te vinden...
Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

#3

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 03 juli 2013 - 22:34

Ik zou persoonlijk niet teveel rekenen, maar gewoon de invoer als string beschouwen.

"xyz "wordt dan 'vertaald' naar: x honderdtallen, y tientallen en z eenheden.

Als je een string hebt die eruit ziet als:
"abcxyz" dan kan je de laatste drie letters weer vertalen als hierboven. De a, b en c kan je op dezelfde manier vertalen, maar in de plaats dat c eenheden bevat, bevat het nu duizendtallen en bevat b tienduizendtallen.

Je kan dus de invoer als een string doorlopen vanaf rechts in groepjes van 3 cijfers.

#4

Yamayamauchiman

    Yamayamauchiman


  • 0 - 25 berichten
  • 19 berichten
  • Gebruiker

Geplaatst op 03 juli 2013 - 22:44

Ik zou persoonlijk niet teveel rekenen, maar gewoon de invoer als string beschouwen.

"xyz "wordt dan 'vertaald' naar: x honderdtallen, y tientallen en z eenheden.

Als je een string hebt die eruit ziet als:
"abcxyz" dan kan je de laatste drie letters weer vertalen als hierboven. De a, b en c kan je op dezelfde manier vertalen, maar in de plaats dat c eenheden bevat, bevat het nu duizendtallen en bevat b tienduizendtallen.

Je kan dus de invoer als een string doorlopen vanaf rechts in groepjes van 3 cijfers.


Ja, dat had ik al bedacht, maar hoe doe ik dat in Java? Hoe zet ik dat ingevoerde getal wxyz uit in 4 aparte cijfers w, x, y en z en toon dan die 4 cijfers apart?
M.A.W. Ik heb die 4 cijfers al apart gedeclareerd, maar heb geen flauw benul hoe ik ze kan initialiseren naar gelang de invoer van de gebruiker.
(Als dit simpel is, let erop dat ik nog maar een week of 2 met Java bezig ben, dus ik weet de basis van het vak niet echt)

#5

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 04 juli 2013 - 09:09

Je zou iets in de volgende aard kunnen doen:

string strGetal = Integer.toString(getal);

Zo maak je vanaf je integer getal een string object aan.
De afzonderlijke karakters in die string kan je dan opvragen via strGetal.charAt(index).
Die index loopt dan van 0 tot strGetal.length().

Als je wil doen wat Drieske zegt kan je het volgende gebruiken en zo vermijd je string operaties als je dat lastig vindt:

getal = 1582;

m = getal % 1000; // m = 582
duizendtallen = (getal-m)/1000 = 1

getal = m; getal = 582

m = getal % 100; // m = 82
honderdtallen = (getal-m)/100 = 5

// etc.

Je zou dan nog een elegante manier moeten bedenken om dat te programmeren. Altijd leuk als je iets in een loopje kan steken. Je kan misschien een array gebruiken en zien dat 1000,100,... machten van 10 zijn?

#6

Yamayamauchiman

    Yamayamauchiman


  • 0 - 25 berichten
  • 19 berichten
  • Gebruiker

Geplaatst op 04 juli 2013 - 13:19

Erg bedankt, ik heb het met de toString methode gedaan. Leek me veel gemakkelijker.
Hier is de uiteindelijke code :)

http://gyazo.com/262...74d3f21e268c8e4

Veranderd door Yamayamauchiman, 04 juli 2013 - 13:20


#7

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 04 juli 2013 - 15:33

Ok, zolang het uiteindelijk maar goed werkt :)

PS: je kan hier direct java code posten door de code tussen [code=auto:0] en [ /code] tags te plaatsen. Voor moeilijkere problemen is dat interessanter omdat dan mensen die je willen helpen dan makkelijk je code kunnen copy pasten en uitvoeren.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures