traversering gjennom en Java String variabel er nyttig når du trenger å behandle hvert tegn i String separat. En Java String inneholder en serie med tegn , for eksempel en engelsk setning. For eksempel kan du vise alle andre ord i en setning som en del av et ord scramble spill. Det er flere måter å krysse en String , alt fra gjentatte samtaler av " Charat "-funksjonen til iterating gjennom en " CharacterIterator " objekt . Standard Technique
En vanlig " for " loop med en repeterende kallet fra " Charat "-funksjonen er den enkleste måten å krysse en String variabel .
String str = " ; tekst her ";
for ( int n = 0 , n < str.length (); n + + ) { char c = str.charAt (n ) ; System.out.println ( c ); }
" Charat " funksjonen returnerer tegnet på et bestemt indeks i en konstant tid . Sløyfen åpner det første tegnet i strengen og gjentar frem ett tegn om gangen til den når enden av strengen . Den " System.out.println "-funksjonen viser verdien av karakteren .
Traverse en String Backwards
Traverse en String variabel i omvendt rekkefølge ved å starte på siste karakter og beveger seg bakover til løkken når det første tegnet i strengen
String str = " tekst her "; .
for ( int n = str.length ( ) -1 ; n > = 0 , n - ) { char c = str.charAt (n ) ; System.out.println ( c ) ;}
Traverse med en " for - hver " Loop
p Det er mulig å reagere gjennom en streng med en" for - hver " konstruere , men må du først kaller" toCharArray ( ) "-funksjonen , som skaper en karakter matrise fra String variabel
String str = " text here ";
for (char c: str.toCharArray ( ) ) . { System.out.println ( c ) ;}
Dessverre , den " toCharArray ( ) "-funksjonen kommer med en overhead kostnader fordi det må skape en helt ny karakter matrisen fra String variabel .
Traverse med en " CharacterIterator " objekt
en annen måte å krysse en String er ved å skape en " CharacterIterator " objekt fra String og deretter gjentar gjennom objektet med en normal "for" loop.
CharacterIterator str_it = new StringCharacterIterator ( " tekst her ");
for (char c = str_it.first ( ), c = CharacterIterator.DONE ; ! c = str_it.next ( ) ) { System.out.println ( c ) ;}
Alternativt iterere gjennom " CharacterIterator " i motsatt rekkefølge med den "siste " og " tidligere " funksjoner
for (char c = str_it.last . ( ), c = CharacterIterator.DONE ; ! c = str_it.previous ( ) ) { System.out.println ( c ) ;}