Iterar sobre los caracteres de la cadena en Java

Rupam Yadav 12 octubre 2023
  1. Usa String.chars() en Java 8 para iterar sobre todos los caracteres de una cadena
  2. Use String.codePoints() Java 8 para hacer un bucle sobre todos los caracteres de una cadena en Java
  3. Usa String.toCharArray() para hacer un bucle sobre todos los caracteres de una cadena en Java
  4. Usa StringCharacterIterator para iterar sobre todos los caracteres de una cadena en Java
  5. Use String.split() para hacer un bucle sobre todos los caracteres de una cadena en Java
Iterar sobre los caracteres de la cadena en Java

Este artículo presentará varios métodos para iterar sobre cada carácter de una cadena en Java.

Usa String.chars() en Java 8 para iterar sobre todos los caracteres de una cadena

Java 8 nos proporciona un nuevo método String.chars() que devuelve un IntStream. El IntStream devuelto contiene una representación entera de los caracteres de la cadena. Aquí obtenemos stream1 de myString.chars().

Mapeamos el IntStream devuelto en un objeto. El stream1.mapToObj() convierte los valores enteros en su respectivo equivalente en caracteres. Sin embargo, para mostrar y leer los caracteres, necesitamos convertirlos en una forma de caracteres fácil de usar.

import java.util.stream.IntStream;

public class ForEachChar {
  public static void main(String[] args) {
    String myString = "Hello There!";
    String myString2 = "My Friends";
    String myString3 = "Happy Coding";

    IntStream stream1 = myString.chars();
    IntStream stream2 = myString2.chars();
    IntStream stream3 = myString3.chars();

    stream1.mapToObj(Character::toChars).forEach(System.out::print);
    System.out.println("");

    stream2.mapToObj(i -> new Character((char) i)).forEach(System.out::print);
    System.out.println("");

    stream3.forEach(i -> System.out.print(Character.toChars(i)));
  }
}

Producción :

Hello There!
My Friends
Happy Coding

Use String.codePoints() Java 8 para hacer un bucle sobre todos los caracteres de una cadena en Java

Java 8 String.codePoints() devuelve un IntStream de puntos de código Unicode de esta secuencia. Devuelve los valores ASCII del caractere pasado.

Podemos mapear el IntStream devuelto a un objeto usando stream.mapToObj para que se convierta automáticamente en un Stream<Character>. Usamos la referencia del método e imprimimos cada carácter en la cadena especificada.

import java.util.stream.IntStream;

public class ForEachChar {
  public static void main(String[] args) {
    String myString = "Happy Coding";
    IntStream stream = myString.codePoints();
    stream.mapToObj(Character::toChars).forEach(System.out::print);
  }
}

Producción :

Happy Coding 

Usa String.toCharArray() para hacer un bucle sobre todos los caracteres de una cadena en Java

El método String.toCharArray() convierte la cadena dada en una secuencia de caracteres. Devuelve un array de carácter cuya longitud es similar a la de la cadena.

Para iterar sobre cada carácter de una cadena, podemos usar toCharArray() y mostrar cada carácter.

public class ForEachChar {
  public static void main(String[] args) {
    String myString = "Hello Friends";
    char[] chars = myString.toCharArray();
    int len = chars.length;
    System.out.println("length of the char array: " + len);
    for (char ch : chars) {
      System.out.println(ch);
    }
  }
}

Producción :

length of the char array: 13
H
e
l
l
o
 
F
r
i
e
n
d
s

Usa StringCharacterIterator para iterar sobre todos los caracteres de una cadena en Java

La clase StringCharacterIterator implementa una iteración bidireccional de la cadena. Toma una cadena como parámetro, que construye un iterador con un índice inicial de 0.

En el bucle while, llamamos current() al iterador it, que devuelve el carácter en la posición actual o devuelve DONE si la posición actual es el final del texto.

El método next() en it devuelve el carácter en la nueva posición o DONE si la nueva posición es el final.

import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
public class ForEachChar {
  public static void main(String[] args) {
    String myString = "Hello Friends";
    CharacterIterator it = new StringCharacterIterator(myString);

    while (it.current() != CharacterIterator.DONE) {
      System.out.print(it.current());
      it.next();
    }
  }
}

Producción :

Hello Friends

Use String.split() para hacer un bucle sobre todos los caracteres de una cadena en Java

El método String.split() divide la cadena contra la expresión regular dada y devuelve un nuevo array.

En el siguiente código, usamos myString.split("") para dividir la cadena entre cada carácter. Podemos iterar cada carácter en el str_arr y mostrarlo.

public class ForEachChar {
  public static void main(String[] args) {
    String myString = "Hello Friends";
    String[] str_arr = myString.split("");

    for (String ch : str_arr) {
      System.out.print(ch);
    }
  }
}

Producción :

Hello Friends
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java String

Artículo relacionado - Java Char