Desplazarse a través de una variable String en Java

Con Java es posible extraer cada una de las letras de una oración.
Por sean mann

Técnica estándar

Un ciclo "for" regular con una llamada repetitiva de la función "charAt" es la forma más directa de atravesar una variable de cadena.

String str = "texto aquí";

for (int n = 0, n <str.length (); n + +) { char c = str.charAt (n); System.out.println (c); }

La función "charAt" devuelve el carácter de un índice específico en un tiempo constante. El ciclo accesa al primer carácter en la cadena e itera hacia adelante un carácter a la vez hasta que llega al final de la cadena. La función "System.out.println" muestra el valor del carácter.


Recorrer una cadena hacia atrás

Recorre una variable String en orden inverso empezando por el último carácter y moviéndote hacia atrás hasta que el ciclo alcanza el primer carácter de la cadena.

String str = "texto aquí";

for (int n = str.length () -1, n> = 0; n -) { char c = str.charAt (n); System.out.println (c); }


Recorrer con un ciclo "for-each"

Es posible recorrer una cadena con un construcción "for-each", pero primero tienes que llamar a la función "ToCharArray ()", que crea un arreglo de caracteres a partir de la variable String.

String str = "texto aquí";

for (char c: str.toCharArray ()) { System.out.println (c); }

Lamentablemente, la función "ToCharArray ()" viene con un costo fijo, ya que debe crear una matriz de caracteres totalmente nueva a partir de la variable String.


Recorrer con un objeto "CharacterIterator"

Otra forma de recorrer una cadena es mediante la creación de un objeto "CharacterIterator" a partir de la cadena y luego iterar a través del objeto con un ciclo "for" normal.

CharacterIterator str_it = new StringCharacterIterator ("texto aquí");

for (char c = str_it.first (); c = CharacterIterator.DONE;! str_it.next c = ()) { System.out.println (c); }

Alternativamente, itera a través de la "CharacterIterator" en orden inverso con las funciones "last" y "anterior".

for (char c = str_it.last (); c = CharacterIterator.DONE;! str_it.previous c = ()) { System.out.println (c); }