Fahren durch einen Java-String- Variable ist hilfreich, wenn Sie jedes Zeichen im String getrennt verarbeiten müssen . Ein Java- String enthält eine Reihe von Zeichen , wie ein englischer Satz . Zum Beispiel könnten Sie zeigen jedes andere Wort in einem Satz als Teil einer Word Scramble -Spiel. Es gibt mehrere Möglichkeiten, um ein String durchlaufen , angefangen von wiederholten Aufrufen der " charAt "-Funktion zum Durchlaufen einer " CharacterIterator " Objekt . Standard- Technik
Eine regelmäßige " for"-Schleife mit einem sich wiederholenden Aufruf des " charAt "-Funktion ist der direkteste Weg, um eine String-Variable zu durchqueren.
String str = " ; text here ";
for (int n = 0; n < str.length (); n + +) {char c = str.charAt ( n ); System.out.println ( c );}
" charAt " -Funktion gibt das Zeichen an einem bestimmten Index in einer konstanten Zeit . Die Schleife greift auf das erste Zeichen im String und durchläuft ein Zeichen vorwärts zu einer Zeit , bis sie das Ende des String erreicht . Die " System.out.println "-Funktion zeigt den Wert des Zeichens.
Traverse ein String Backwards
Traverse eine String-Variable in umgekehrter Reihenfolge ab der letzte Zeichen und rückwärts bewegt , bis die Schleife erreicht das erste Zeichen im String
String str = " text here "; .
for (int n = str.length () -1 ; n> = 0 , n - ) {char c = str.charAt ( n ); System.out.println ( c );}
Traverse mit einer " for- jeder "Loop
Es ist möglich, durch einen String mit durchlaufen eine " for-each " konstruieren , aber Sie müssen zuerst den Anruf " ToCharArray () " -Funktion, die ein Zeichen-Array erstellt aus der String-Variable
String str = " text here ";
for ( char c : str.toCharArray ()). {System.out.println ( c );}
Leider hat das " ToCharArray () "-Funktion kommt mit einem Overhead-Kosten , weil es eine völlig neue Zeichen-Array aus dem String Variable muss zu erstellen.
Traverse mit einem " CharacterIterator " Object
weitere Möglichkeit, einen String durchqueren ist durch die Schaffung eines " CharacterIterator " Objekt aus dem String und dann durchlaufen des Objekts mit einem normalen " for"-Schleife .
CharacterIterator str_it = new StringCharacterIterator ("text here" );
for ( char c = str_it.first (); c = CharacterIterator.DONE ; ! c = str_it.next ()) { System.out.println (c); }
Alternativ , durch die " CharacterIterator " in umgekehrter Reihenfolge mit dem " letzten " und "Zurück" -Funktionen durchlaufen
for ( char c = str_it.last . (); c = CharacterIterator.DONE ; ! c = str_it.previous () ) {System.out.println ( c );}