Iterar sobre caracteres de string em Java

Rupam Yadav 12 outubro 2023
  1. Utilizar String.chars() em Java 8 para Iterar sobre todos os caracteres de uma string
  2. Use String.codePoints() Java 8 para repetir todos os caracteres em uma string em Java
  3. Use String.toCharArray() para repetir todos os caracteres em uma string em Java
  4. Utilize StringCharacterIterator para Iterar sobre todos os caracteres de uma string em Java
  5. Utilize String.split() para fazer Loop Over All Characters in a String em Java
Iterar sobre caracteres de string em Java

Este artigo irá introduzir vários métodos para iterar sobre cada caractere de uma string em Java.

Utilizar String.chars() em Java 8 para Iterar sobre todos os caracteres de uma string

Java 8 fornece-nos um novo método String.chars() que devolve um IntStream. O IntStream devolvido contém uma representação inteira dos caracteres da string. Aqui obtemos stream1 de myString.chars().

Mapeamos o IntStream devolvido para um objecto. O stream1.mapToObj() converte os valores inteiros no seu respectivo equivalente em caracteres. No entanto, para exibir e ler os caracteres, precisamos de os converter numa forma de caracteres de fácil utilização.

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)));
  }
}

Resultado:

Hello There!
My Friends
Happy Coding

Use String.codePoints() Java 8 para repetir todos os caracteres em uma string em Java

Java 8 String.codePoints() devolve um IntStream de pontos de código Unicode a partir desta sequência. Retorna os valores ASCII do carácter passado.

Podemos mapear o IntStream devolvido a um objecto utilizando stream.mapToObj para que seja automaticamente convertido num Stream<Character>. Utilizamos a referência do método e imprimimos cada caracter na string 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);
  }
}

Resultado:

Happy Coding 

Use String.toCharArray() para repetir todos os caracteres em uma string em Java

O método String.toCharArray() converte a string dada numa sequência de caracteres. Retorna um array Character cujo comprimento é semelhante ao comprimento da string.

Para iterar sobre cada caractere de uma string, podemos utilizar toCharArray() e exibir cada caractere.

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);
    }
  }
}

Resultado:

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

Utilize StringCharacterIterator para Iterar sobre todos os caracteres de uma string em Java

A classe StringCharacterIterator implementa uma iteração bidireccional da string. Toma uma string como parâmetro, que constrói um iterador com um índice inicial de 0.

No laço while, chamamos current() ao iterador it, que retorna o caractere na posição actual ou retorna DONE se a posição actual for o fim do texto.

O método next() no it, que retorna o caractere na nova posição ou DONE se a nova posição for o fim do texto.

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();
    }
  }
}

Resultado:

Hello Friends

Utilize String.split() para fazer Loop Over All Characters in a String em Java

O método String.split() divide a string contra a expressão regular dada e devolve uma nova matriz.

No código abaixo, utilizamos myString.split("") para dividir a string entre cada caractere. Podemos iterar cada caractere no str_arr e exibi-lo.

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);
    }
  }
}

Resultado:

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

Artigo relacionado - Java String

Artigo relacionado - Java Char