Itération des caractères de la chaîne de caractères en Java

  1. Utilisez String.chars() en Java 8 pour itérer sur tous les caractères d’une chaîne
  2. Utiliser String.codePoints() Java 8 pour boucler tous les caractères d’une chaîne en Java
  3. Utilisez String.toCharArray() pour boucler tous les caractères d’une chaîne en Java
  4. Utilisez StringCharacterIterator pour itérer tous les caractères d’une chaîne en Java
  5. Utilisez String.split() pour boucler tous les caractères d’une chaîne en Java

Cet article présente différentes méthodes pour itérer sur chaque caractère d’une chaîne de caractères en Java.

Utilisez String.chars() en Java 8 pour itérer sur tous les caractères d’une chaîne

Java 8 nous fournit une nouvelle méthode String.chars() qui retourne un IntStream. Le IntStream renvoyé contient une représentation entière des caractères de la chaîne. Ici, nous obtenons le stream1 à partir de myString.chars().

Nous mettons en correspondance le IntStream renvoyé avec un objet. Le stream1.mapToObj() convertit les valeurs entières en leur équivalent en caractères respectifs. Cependant, pour afficher et lire les caractères, nous devons les convertir en une forme de caractère conviviale.

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

Production :

Hello There!
My Friends
Happy Coding

Utiliser String.codePoints() Java 8 pour boucler tous les caractères d’une chaîne en Java

Java 8 String.codePoints() renvoie un IntStream de points de code Unicode de cette séquence. Il renvoie les valeurs ASCII du caractère passé.

Nous pouvons mapper le IntStream retourné à un objet en utilisant stream.mapToObj de façon à ce qu’il soit automatiquement converti en un Stream<Character>. Nous utilisons la référence de la méthode et imprimons chaque caractère dans la chaîne spécifiée.

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

Production :

Happy Coding 

Utilisez String.toCharArray() pour boucler tous les caractères d’une chaîne en Java

La méthode String.toCharArray() convertit la chaîne donnée en une séquence de caractères. Elle renvoie un tableau de caractères dont la longueur est similaire à celle de la chaîne.

Pour itérer sur chaque caractère d’une chaîne, nous pouvons utiliser toCharArray() et afficher chaque caractère.

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

Production :

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

Utilisez StringCharacterIterator pour itérer tous les caractères d’une chaîne en Java

La classe StringCharacterIterator implémente une itération bidirectionnelle de la chaîne. Elle prend comme paramètre une chaîne de caractères, qui construit un itérateur avec un indice initial de 0.

Dans la boucle while, nous appelons current() sur l’itérateur it, qui renvoie le caractère à la position courante ou renvoie DONE si la position courante est la fin du texte.

La méthode next() sur it renvoie le caractère à la nouvelle position ou DONE si la nouvelle position est la fin.

import java.text.StringCharacterIterator;
import java.text.CharacterIterator;
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();
        }
    }
}

Production :

Hello Friends

Utilisez String.split() pour boucler tous les caractères d’une chaîne en Java

La méthode String.split() fractionne la chaîne de caractères en fonction de l’expression régulière donnée et renvoie un nouveau tableau.

Dans le code ci-dessous, nous utilisons myString.split("") pour diviser la chaîne entre chaque caractère. Nous pouvons itérer chaque caractère de la str_arr et l’afficher.

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

Production :

Hello Friends

Article connexe - Java String

  • Comment convertir un tableau d'octets en chaîne hexadécimale en Java
  • Convertir un InputStream en une chaîne de caractères en Java
  • Article connexe - Java Char

  • Convertir un InputStream en une chaîne de caractères en Java
  • Multiplier les chaînes de caractères en Java