Traverseren via een Java String variabele is nuttig wanneer je nodig hebt om elk teken in de string afzonderlijk te verwerken . Een Java String bevat een reeks tekens, zoals een Engels zin . Zo kan je elk ander woord in een zin als onderdeel van een woord scramble spel weer te geven. Er zijn verschillende manieren om een String doorkruisen , variërend van herhaalde oproepen van de functie te itereren door middel van een " CharacterIterator " object " charAt " . Standaard Techniek Een regelmatige " voor" lus met een repetitieve oproep van de functie " charAt " is de meest eenvoudige manier om een String variabele doorkruisen . String str = " , tekst hier " ; voor ( int n = 0 ; n < str.length ( ) ; n + + ) { char c = str.charAt ( n ) ; System.out.println ( c ) ; } de functie " charAt " keert het teken op een bepaalde index in een constante tijd . De lus toegang tot het eerste teken in de string en herhaalt voren een teken tegelijk totdat het einde van de string bereikt . De functie " System.out.println " geeft de waarde van het teken . Traverse a String Backwards Traverse een string variabele in omgekeerde volgorde door te beginnen bij de laatste karakter en beweegt naar achteren totdat de lus String str = " tekst hier " bereikt het eerste teken in de string ; voor ( int n = str.length ( ) -1 . ; n > = 0 ; n - ) { char c = str.charAt ( n ) ; System.out.println ( c ) ; } Traverse met een " voor - elk " Loop p Het is mogelijk om te schakelen door middel van een string met een " voor - elk " te construeren , maar je moet eerst naar de bel " toCharArray ( ) -functie " , die een karakter array creëert van de String variabele String str = " tekst hier " ; voor ( char c : str.toCharArray ( ) ) . { System.out.println ( c ) ; } < br > Helaas , de " toCharArray ( ) " functie wordt geleverd met een overhead kosten omdat het een geheel nieuw karakter array van de String variabele moet maken . Traverse met een " CharacterIterator " object andere manier om een string traverse is door het creëren van een " CharacterIterator " object van de String en vervolgens itereren door het object met een normale lus "voor" . CharacterIterator str_it = new StringCharacterIterator ( " tekst hier " ) ; voor ( char c = str_it.first ( ) ; c = CharacterIterator.DONE ; ! c = str_it.next ( ) ) { System.out.println ( c ) ; } alternatief , doorlopen de " CharacterIterator " in omgekeerde volgorde met de "laatste " en " vorige" functies voor ( char c = str_it.last . ( ) ; c = CharacterIterator.DONE ; ! c = str_it.previous ( ) ) { System.out.println ( c ) ; }
|