Desplazarse a través de una variable String en Java
Desplazarse a través de una variable String en Java es útil cuando necesitas procesar cada carácter de la cadena por separado. Una Java String contiene una serie de caracteres, como una frase en inglés. Por ejemplo, puedes mostrar cada palabra en una oración como parte de un juego de sopa de letras. Hay varias maneras de atravesar una cadena, que va desde las llamadas repetitivas de la función "charAt" a la iteración a través de un objeto "CharacterIterator".
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); }