Kørsel gennem en Java String variabel er nyttigt, når du har brug for at behandle hvert tegn i String separat. En Java String indeholder en række tegn , som en engelsk sætning . For eksempel kan du få vist alle andre ord i en sætning som en del af et ord scramble spil. Der er flere måder at krydse en String , der spænder fra gentagne opkald fra " charAt "-funktionen til iteration gennem en " CharacterIterator " objekt . Standard Teknik
En almindelig "for" loop med en gentagen indkaldelse af " charAt "-funktionen er den mest direkte vej til at krydse 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 " funktion returnerer tegnet ved et bestemt indeks i en konstant tid. Sløjfen tilgår første tegn i String og gentager fremad ét tegn ad gangen, indtil den når til slutningen af strengen. Den " System.out.println " funktion viser værdien af den karakter .
Traverse en String Backwards
Traverse en String variabel i omvendt rækkefølge ved at starte på sidste karakter og bevæger sig baglæns , indtil løkken når det første tegn 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 muligt at gentage gennem en streng med en" for - hver " opføre, men du først nødt til at kalde " toCharArray () " funktionen , som skaber en karakter matrix fra String variable
String str = " tekst her "
for (char c: str.toCharArray () ) . { System.out.println ( c );} < br >
Desværre " toCharArray ()" funktionen kommer med en overhead omkostninger, fordi den skal skabe en helt ny karakter matrix fra String variabel.
Traverse med en " CharacterIterator " objekt
anden måde at krydse en String er ved at skabe en " CharacterIterator " objekt fra String og derefter iteration gennem 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 kan du gentage gennem " CharacterIterator " i omvendt rækkefølge med " sidste " og " tidligere " funktioner
for (char c = str_it.last . ( ) c = CharacterIterator.DONE , ! c = str_it.previous ( )) { System.out.println ( c );}