Eksempler på Rygge Tall i en Java-programmet

Eksempler på Rygge Tall i en Java-programmet


Java er et kraftig programmeringsspråk med et vell av nyttige klasser og metoder som forenkler kjedelige oppgaver og komplekse datastrukturer. Øvelsene for reversering av sifrene i et tall illustrerer noen av Java grunnleggende operasjoner og nyttige funksjoner. En mulig anvendelse av denne prosedyren er å se etter palindromer.

modulo

Den modulo operatør etterlater mange nye programmerere klør seg i hodet fordi mange ikke har tenkt på konseptet med en "rest" siden barneskolen, og programmeringsspråk gi det morsomme navnet "modulo.» Den modul-handling, som returnerer resten av delingen av to heltall, gjør lett arbeid av hakking ett eller flere sifre på slutten av et heltall bare ved hjelp av tierpotenser for divisor. For eksempel:

187% 10 returer 7
364% 100 avkastning 64

For å snu sifrene i et tall, bare sløyfe gjennom hvert siffer, ved hjelp av modulo til pop hvert tall på slutten av nummeret, divisjon og multiplikasjon å skifte sifrene. For eksempel:

int origNum = 123456789

int newNum = 0

while (origNum 0>) {
newNum * = 10

newNum + = origNum% 10

origNum / = 10

}

Når sløyfen er fullført, vil newNum holde verdien 987.654.321.

string

Strengen og Stringbuffer klasser gir praktiske funksjoner for å konvertere typer og manipulere strenger. Ved hjelp av Stringbuffer er omvendt metoden gjør rygging sifrene i et heltall rask og enkel jobb. For eksempel:

int origNum = 123456789

int newNum = 0

String str = String.valueOf (origNum)

Stringbuffer buf = new String (str)

str = buf.reverse (). toString ()

newNum = Integer.parseInt (str);

Array

Arrays er ganske enkle datastrukturer som gir deg muligheten til å lage en liste over verdier og navigere gjennom dem. Bruk matte klasse log10 metode for å telle sifrene, skaper en rekke heltall å holde ett siffer på hver indeks, og bruke modulo og andre grunnleggende operatører å dekonstruere og rekonstruere nummeret.

int origNum = 123456789

int newNum = 0

int count = (origNum == 0)? 1: (int) Math.log10 (origNum) + 1

int [] tall = new int [count]

int i

for (i = 0; i <telle; i ++) {
Sifrene [i] = origNum% 10

origNum / = 10

}
for (i = 0; i <telle; i ++) {
newNum * = 10

newNum + = sifre [i]

}

Vector

Vector klasse er en kompleks datastruktur som inneholder en liste over elementer, vokser og krymper dynamisk, og tilveiebringer fremgangsmåter for å få tilgang til en liste på en måte tilsvarende matriser. I motsetning til arrays, kan vektorer holde en rekke ulike type gjenstander, men for dette eksempelet vil det rett og slett holde tallene i heltall. Siden vektorer vokse dynamisk, og Oppramsinger automatisk iterere gjennom listen ved hjelp av nextElement () og hasMoreElements () metoder, er det ikke nødvendig å telle sifrene.

int origNum = 123456789

int newNum = 0

Vektor siffer = ny Vector ()

while (origNum 0>) {
digits.add (origNum% 10)

origNum / = 10

}

for (oppregning d = digits.elements (); d.hasMoreElements ();) {
newNum * = 10

newNum + = Integer.parseInt (d.nextElement (). toString ())

}

Sammendrag

Det er mange andre Java-klasser som ligner Vector som kan utforskes ved hjelp av tall reversering trening, som List, Iterator, kø, Arraylist og Linked. Antallet tilbakeslag prosedyren kan lett skrives som en funksjon slik at den kan kalles gjentatte ganger i interaktive programmer og gjenbrukes i flere programmer. Implementering av klasser for å demonstrere de ulike metodene er en utmerket måte å praktisere Java Objektorientert programmering teknikker, for eksempel grensesnitt og arv.