Java är ett kraftfullt programmeringsspråk med en mängd användbara klasser och metoder som förenklar tråkiga uppgifter och komplexa datastrukturer . De övningar vända siffrorna i ett heltal illustrerar några av Javas grundläggande funktioner och användbara funktioner . En möjlig tillämpning av detta förfarande är att kontrollera om palindrom . Modulo
modulooperatorn lämnar många nya programmerare klia sina huvuden , eftersom många människor inte har tänkt på begreppet " återstående " sedan grundskolan , och programmeringsspråk ge den roliga namnet " modulo . " Modulooperationen , vilket returnerar resten av divisionen av två heltal , gör det enkelt att hacka en eller flera siffror från slutet av ett heltal genom att enkelt använda tiopotenser för divisor . Till exempel :
187 % 10 returnerar 7364 % 100 returnerar 64
att vända siffrorna i ett heltal , helt enkelt slinga genom varje siffra , med modulo till pop varje siffra från slutet av numret , division och multiplikation att flytta siffror . Till exempel :
int origNum = 123456789 ; int newNum = 0 , medan ( origNum > 0 ) { newNum * = 10 ; newNum + = origNum % 10 ; origNum /= 10 ; }
När slingan är klar , kommer newNum hålla värdet 987654321 .
String
strängen och StringBuffer klasser ger praktiska funktioner för att konvertera olika typer och manipulera strängar . Använda StringBuffer omvända metod vända siffrorna i ett heltal snabbt och enkelt arbete . Till exempel : .
Int origNum = 123456789 ; int newNum = 0; String str = String.valueOf ( origNum ) , StringBuffer buf = ny StringBuffer ( str ) , str = buf.reverse ( ) toString ( ) ; newNum = Integer.parseInt ( str ) ;
Array
arrayer är ganska enkla datastrukturer som ger dig möjlighet att skapa en lista med värden och navigera genom dem . Använd matte klass log10 metod att räkna siffror , skapar en array av heltal att hålla en siffra på varje index , och använda modulo och andra grundläggande operatörer att dekonstruera och rekonstruera
int origNum = 123456789 ; . Int newNum = 0 ; int count = ( origNum == 0 ) ? 1 : ( int ) Math.log10 ( origNum ) + 1 ; int [ ] siffror = new int [ count ] , int i; for (i = 0 ; i. < count; i + + ) { siffror [ i] = origNum % 10 ; origNum /= 10 ; } for (i = 0 ; i. < count; i + + ) { newNum * = 10 ; newNum + = siffror [ i] ; } Addera Vektor
klassen Vector är en komplex datastruktur som innehåller en lista med objekt , växer och krymper dynamiskt , och tillhandahåller metoder för att komma åt listan på ett sätt som liknar arrayer . Till skillnad arrayer kan Vektorer hålla en mängd olika textobjekt , men för detta exempel kommer det att helt enkelt hålla varje siffra i heltal . Eftersom vektorer växa dynamiskt , och uppräkningar automatiskt iterera igenom listan med nextElement ( ) och hasMoreElements ( ) metoder , det finns ingen anledning att räkna siffror
int origNum = 123456789 ; . Int newNum = 0; vektor siffror = new Vector ( ) ;
samtidigt ( origNum > 0 ) { digits.add ( origNum % 10 ) ; origNum /= 10 ; }
för ( Räkning d = digits.elements ( ) ; d.hasMoreElements ( ) ; ) { newNum * = 10; . newNum + = Integer.parseInt ( d.nextElement ( ) toString ( ) ) ; }
Sammanfattning
p Det finns många andra Java- klasser som liknar vektor som kan utforskas med hjälp av motion nummer återföring , såsom lista , Iterator , Kö , ArrayList , och LinkedList . Antalet återföring förfarande kan lätt skrivas som en funktion så att den kan kallas upprepade gånger i interaktiva program och återanvänds i flera program . Implementera klasserna för att demonstrera de olika metoderna är ett utmärkt sätt att öva Java objektorienterad programmering tekniker, såsom gränssnitt och arv .