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

Moderators: jkien, Xilvo

Reageer
Berichten: 19

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

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/4c384819b855fb8ffc3da597546d9a46.png

Gebruikersavatar
Berichten: 10.179

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

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.

Gebruikersavatar
Berichten: 2.609

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

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.

Berichten: 19

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

Xenion schreef: wo 03 jul 2013, 23: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.
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)

Gebruikersavatar
Berichten: 2.609

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

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:

Code: Selecteer alles


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?

Berichten: 19

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

Erg bedankt, ik heb het met de toString methode gedaan. Leek me veel gemakkelijker.

Hier is de uiteindelijke code :)

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

Gebruikersavatar
Berichten: 2.609

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

Ok, zolang het uiteindelijk maar goed werkt :)

PS: je kan hier direct java code posten door de code tussen

Code: Selecteer alles

 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.

Reageer