Java 8 – Convert String to List of Characters Using Stream

📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.

🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.

▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube

▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube

Introduction

In Java 8, converting a String to a List<Character> is easy using the Stream API. This approach is useful when you need to manipulate or process individual characters in a string. By converting a string into a stream of characters, you can then collect the characters into a list and perform further operations as needed.

In this guide, we will learn how to convert a String to a List<Character> using Java 8.

Solution Steps

  1. Define the Input String: Create a string that will be converted into a list of characters.
  2. Convert the String to an IntStream: Use the chars() method to convert the string into an IntStream of character codes.
  3. Map Character Codes to Characters: Use mapToObj() to convert the IntStream of character codes to Character objects.
  4. Collect the Stream to a List: Use collect(Collectors.toList()) to collect the characters into a List<Character>.

Java Program

import java.util.List; import java.util.stream.Collectors; public class StringToListOfCharacters { public static void main(String[] args) { // Step 1: Define the input string String input = "Hello, World!"; // Step 2-4: Convert the string to a list of characters using Stream API List<Character> charList = input.chars() // Convert string to IntStream .mapToObj(c -> (char) c) // Map each int to Character .collect(Collectors.toList()); // Collect to List // Display the result System.out.println(charList); } } 

Output

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

Explanation

Step 1: Define the Input String

We start by defining a string that we want to convert into a list of characters:

String input = "Hello, World!"; 

Step 2: Convert the String to an IntStream

The chars() method converts the string into an IntStream of character codes. Each element in this stream represents the Unicode value (integer code) of a character from the string:

IntStream charStream = input.chars(); 

Step 3: Map Character Codes to Characters

We use mapToObj() to map each integer (character code) to a Character object. This allows us to work with the actual characters instead of their Unicode values:

Stream<Character> characterStream = charStream.mapToObj(c -> (char) c); 

Here, c -> (char) c converts each integer back to a char, and the Stream<Character> is created.

Step 4: Collect the Stream to a List

Finally, we collect the stream of characters into a List<Character> using Collectors.toList():

List<Character> charList = characterStream.collect(Collectors.toList()); 

This step gathers the individual characters into a list, which can be used for further processing or manipulation.

Conclusion

Using Java 8's Stream API, converting a String to a List<Character> is both simple and efficient. By leveraging the chars() method, mapToObj(), and collect(), you can easily process each character in a string and collect them into a list for further operations.

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare