Iterieren über Zeichen von String in Java

Rupam Yadav 12 Oktober 2023
  1. Verwenden Sie String.chars() in Java 8, um über alle Zeichen in einer Zeichenkette zu iterieren
  2. Verwenden Sie String.codePoints() in Java 8, um eine Schleife über alle Zeichen in einer Zeichenkette zu ziehen
  3. Mit String.toCharArray() in Java über alle Zeichen in einer Zeichenkette schleifen
  4. Verwenden Sie StringCharacterIterator, um über alle Zeichen in einer Zeichenkette in Java zu iterieren
  5. Mit String.split() in Java über alle Zeichen in einer Zeichenkette schleifen
Iterieren über Zeichen von String in Java

In diesem Artikel werden verschiedene Methoden vorgestellt, um in Java über jedes Zeichen in einer Zeichenkette zu iterieren.

Verwenden Sie String.chars() in Java 8, um über alle Zeichen in einer Zeichenkette zu iterieren

Java 8 stellt uns eine neue Methode String.chars() zur Verfügung, die einen IntStream zurückgibt. Der zurückgegebene IntStream enthält eine Integer-Darstellung der Zeichen in der Zeichenkette. Hier erhalten wir stream1 von myString.chars().

Wir mappen den zurückgegebenen IntStream in ein Objekt. Mit stream1.mapToObj() werden die Integer-Werte in ihre jeweilige Zeichenentsprechung umgewandelt. Um die Zeichen jedoch anzeigen und lesen zu können, müssen wir sie in eine benutzerfreundliche Zeichenform konvertieren.

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

Ausgabe:

Hello There!
My Friends
Happy Coding

Verwenden Sie String.codePoints() in Java 8, um eine Schleife über alle Zeichen in einer Zeichenkette zu ziehen

Java 8 String.codePoints() gibt einen IntStream von Unicode-Codepunkten aus dieser Sequenz zurück. Sie gibt die ASCII-Werte des übergebenen Zeichens zurück.

Wir können den zurückgegebenen IntStream mit stream.mapToObj auf ein Objekt mappen, so dass er automatisch in einen Stream<Character> konvertiert wird. Wir verwenden die Methodenreferenz und geben jedes Zeichen in der angegebenen Zeichenkette aus.

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

Ausgabe:

Happy Coding 

Mit String.toCharArray() in Java über alle Zeichen in einer Zeichenkette schleifen

Die Methode String.toCharArray() wandelt die angegebene Zeichenkette in eine Folge von Zeichen um. Sie gibt ein Character-Array zurück, dessen Länge der Länge der Zeichenkette entspricht.

Um über jedes Zeichen in einer Zeichenkette zu iterieren, können wir toCharArray() verwenden und jedes Zeichen ausgeben.

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

Ausgabe:

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

Verwenden Sie StringCharacterIterator, um über alle Zeichen in einer Zeichenkette in Java zu iterieren

Die Klasse StringCharacterIterator implementiert eine bidirektionale Iteration der Zeichenkette. Sie nimmt eine Zeichenkette als Parameter, die einen Iterator mit einem Anfangsindex von 0 konstruiert.

In der while-Schleife rufen wir current() auf dem Iterator it auf, der das Zeichen an der aktuellen Position zurückgibt oder DONE zurückgibt, wenn die aktuelle Position das Ende des Textes ist.

Die Methode next() auf it gibt das Zeichen an der neuen Position zurück oder DONE, wenn die neue Position das Ende ist.

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

Ausgabe:

Hello Friends

Mit String.split() in Java über alle Zeichen in einer Zeichenkette schleifen

Die Methode String.split() zerlegt die Zeichenkette anhand des angegebenen regulären Ausdrucks und gibt ein neues Array zurück.

Im folgenden Code verwenden wir myString.split(""), um die Zeichenkette zwischen den einzelnen Zeichen aufzuteilen. Wir können jedes Zeichen im str_arr iterieren und es ausgeben.

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

Ausgabe:

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

Verwandter Artikel - Java String

Verwandter Artikel - Java Char