Learnitweb

Java Stream program to count Strings Starting with a Specific Letter

Approach 1

import java.util.Arrays;
import java.util.List;

public class CountStringsExample {
    public static void main(String[] args) {
        List<String> words = Arrays.asList("apple", "banana", "apricot", "cherry", "avocado");

        // Specify the letter to check
        char startLetter = 'a';

        // Using Stream to count strings starting with the specified letter
        long count = words.stream()
                          .filter(s -> s.toLowerCase().startsWith(String.valueOf(startLetter)))
                          .count();

        System.out.println("Number of strings starting with '" + startLetter + "': " + count);
    }
}

Approach 2

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class CountUsingFiltering {
    public static void main(String[] args) {
        List<String> words = Arrays.asList("apple", "banana", "apricot", "cherry", "avocado");

        char startLetter = 'a';

        // Using Collectors.filtering with counting
        long count = words.stream()
                          .collect(Collectors.collectingAndThen(
                              Collectors.filtering(
                                  s -> s.toLowerCase().startsWith(String.valueOf(startLetter)),
                                  Collectors.counting()
                              ),
                              Long::longValue
                          ));

        System.out.println("Number of strings starting with '" + startLetter + "': " + count);
    }
}