Java 8 – Convert String to Stream of Characters

Introduction

Converting a string into a stream of characters is useful when you need to process or manipulate each character individually. Java 8 provides a simple and efficient way to convert a string to a stream of characters using the chars() method from the String class. By leveraging the Stream API, you can easily apply operations such as filtering, mapping, and collecting on each character.

In this guide, we will learn how to convert a string into a stream of characters using Java 8.

Solution Steps

  1. Define the String: Create a string that will be converted into a stream of characters.
  2. Convert the String to an IntStream: Use the chars() method to convert the string into an IntStream of character codes.
  3. Convert IntStream to Stream of Characters: Use the mapToObj() method to map each integer (character code) to a Character object.
  4. Process or Display the Stream: Perform operations on the stream or print the characters.

Java Program

import java.util.stream.IntStream;
import java.util.stream.Stream;

public class StringToCharacterStream {
    public static void main(String[] args) {
        // Step 1: Define the input string
        String input = "Hello, World!";

        // Step 2: Convert the string to an IntStream of character codes
        IntStream charStream = input.chars();

        // Step 3: Convert the IntStream to a Stream of Characters
        Stream<Character> characterStream = charStream.mapToObj(c -> (char) c);

        // Step 4: Display each character in the stream
        characterStream.forEach(System.out::println);
    }
}

Output

H
e
l
l
o
,
 
W
o
r
l
d
!

Explanation

Step 1: Define the String

We start by defining a string input with the value "Hello, World!". This is the string we will convert into a stream of characters.

Step 2: Convert the String to an IntStream

The chars() method is used to convert the string into an IntStream, where each element in the stream is the Unicode value (integer code) of the corresponding character in the string.

Step 3: Convert IntStream to Stream of Characters

We use the mapToObj() method to map each integer (character code) in the IntStream to its corresponding Character object. This gives us a Stream<Character> where each element is a character from the original string.

Step 4: Process or Display the Stream

Finally, we use the forEach() method to iterate over the stream and print each character. The result is each character in the string printed on a new line.

Conclusion

Converting a string to a stream of characters in Java 8 is simple and efficient using the chars() method from the String class and mapToObj() for conversion. This approach allows you to process each character individually and apply various stream operations such as filtering, mapping, and collecting.

Comments