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 sifre i et heltall illustrerer noen av Java grunnleggende funksjoner og nyttige funksjoner . En mulig anvendelse av denne prosedyren er å sjekke for palindromes . Modulo
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 den morsomme navnet " modulo . " Den modulo operasjon , som returnerer resten av delingen av to heltall , gjør lett arbeid med hakking ett eller flere siffer av enden av et heltall ganske enkelt ved hjelp tierpotenser for divisoren. For eksempel : en
187 % 10 returnerer 7364 % 100 returnerer 64
å reversere sifrene i et heltall , bare sløyfe gjennom hvert tall , bruker modulo til pop hvert siffer på slutten av nummeret , divisjon og multiplikasjon å skifte sifrene . For eksempel : en
int origNum = 123456789 ; int newNum = 0 , mens ( origNum > 0 ) { newNum * = 10; newNum + = origNum % 10; origNum /= 10 ;}
< p > Når løkken er ferdig, vil newNum holde verdien 987.654.321 .
String
String og StringBuffer klasser gir hendige 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 StringBuffer (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 siffer , lage en matrise av heltall å holde ett siffer hver indeks , og bruke modulo og andre grunnleggende operatører å dekonstruere og rekonstruere antall
int origNum = 123456789 ; . Int newNum = 0 ; int count = ( origNum == 0 ) ? 1 : ( int ) Math.log10 ( origNum ) + 1; int [ ] tall = new int [teller ]; int i; for (i = 0 ; i < teller; i + + ) { tallene [ i] = origNum % 10 ; origNum /= 10 ;} for (i = 0 ; i < teller; i + + ) { newNum * = 10; newNum + = tall [ 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 som ligner på matriser . I motsetning til matriser , kan Vektorer holde en rekke ulike type gjenstander , men for dette eksempelet vil det bare holder hvert siffer i heltall . Siden vektorer vokse dynamisk , og Oppramsinger automatisk reagere gjennom listen ved hjelp av nextElement () og hasMoreElements ( ) metoder , er det ikke nødvendig å telle sifrene
int origNum = 123456789 ; . Int newNum = 0; Vector sifre = new Vector ();
while ( origNum > 0 ) { digits.add ( origNum % 10), origNum /= 10 ;}
for ( Enumeration d = digits.elements ( ) ; d.hasMoreElements (); ) { newNum * = 10; . newNum + = Integer.parseInt ( d.nextElement ( ) toString ( )); }
oppsummering
p Det er mange andre Java-klasser som ligner Vector som kan bli utforsket ved hjelp av nummeret reversering trening, som List, iterator , kø , ArrayList , og LinkedList . Antallet tilbakeslag prosedyren kan lett skrives som en funksjon slik at den kan kalles gjentatte ganger i interaktive programmer og brukes på nytt i flere programmer . Implementering av klasser for å vise at de ulike metodene er en utmerket måte å praktisere Java objektorientert programmering teknikker, for eksempel grensesnitt og arv .