Java Program to Count Vowels and Consonants in a String

Introduction

Counting the number of vowels and consonants in a string is a common task in text processing and analysis. This guide will show you how to create a Java program that counts and displays the number of vowels and consonants in a given string.

Problem Statement

Create a Java program that:

  • Takes a string as input.
  • Counts and displays the number of vowels and consonants in the string.

Example 1:

  • Input: "Hello World"
  • Output: Vowels: 3, Consonants: 7

Example 2:

  • Input: "Java Programming"
  • Output: Vowels: 5, Consonants: 9

Solution Steps

  1. Prompt for Input: Use the Scanner class to read a string input from the user.
  2. Initialize Counters: Initialize variables to count the number of vowels and consonants.
  3. Iterate Through the String: Loop through each character in the string, checking if it's a vowel or consonant.
  4. Display the Counts: Print the number of vowels and consonants.

Java Program

Java Program to Count Vowels and Consonants in a String

import java.util.Scanner;

/**
 * Java Program to Count Vowels and Consonants in a String
 * Author: https://www.javaguides.net/
 */
public class VowelConsonantCounter {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // Step 1: Prompt the user for input
        System.out.print("Enter a string: ");
        String input = scanner.nextLine();

        // Step 2: Initialize counters
        int vowels = 0, consonants = 0;
        input = input.toLowerCase(); // Convert the string to lowercase

        // Step 3: Iterate through the string and count vowels and consonants
        for (int i = 0; i < input.length(); i++) {
            char ch = input.charAt(i);

            if (ch >= 'a' && ch <= 'z') {  // Check if the character is a letter
                if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
                    vowels++;
                } else {
                    consonants++;
                }
            }
        }

        // Step 4: Display the counts
        System.out.println("Vowels: " + vowels);
        System.out.println("Consonants: " + consonants);
    }
}

Explanation

  • Input: The program prompts the user to enter a string.
  • Counting Vowels and Consonants: The string is first converted to lowercase to handle case insensitivity. The program then iterates through each character in the string:
    • If the character is a vowel (a, e, i, o, u), the vowels counter is incremented.
    • If the character is a letter but not a vowel, the consonants counter is incremented.
  • Output: The program prints the number of vowels and consonants in the input string.

Output Example

Example 1:

Enter a string: Hello World
Vowels: 3
Consonants: 7

Example 2:

Enter a string: Java Programming
Vowels: 5
Consonants: 9

Example 3:

Enter a string: Vowel Consonant Counter
Vowels: 7
Consonants: 13

Alternative Approach: Using Java 8 Streams

import java.util.Scanner;
import java.util.stream.Stream;

/**
 * Java Program to Count Vowels and Consonants in a String using Java 8 Streams
 * Author: https://www.javaguides.net/
 */
public class VowelConsonantCounterStreams {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // Step 1: Prompt the user for input
        System.out.print("Enter a string: ");
        String input = scanner.nextLine().toLowerCase(); // Convert to lowercase

        // Step 2: Count vowels using streams
        long vowelCount = input.chars()
                .filter(c -> "aeiou".indexOf(c) != -1)
                .count();

        // Step 3: Count consonants using streams
        long consonantCount = input.chars()
                .filter(c -> c >= 'a' && c <= 'z' && "aeiou".indexOf(c) == -1)
                .count();

        // Step 4: Display the counts
        System.out.println("Vowels: " + vowelCount);
        System.out.println("Consonants: " + consonantCount);
    }
}

Explanation

  • Counting Vowels and Consonants Using Streams: This approach leverages Java 8's Stream API to filter and count vowels and consonants. The chars() method converts the string into an IntStream of character codes. The filter() method is used to check whether each character is a vowel or consonant, and the count() method returns the count.

Output Example

Enter a string: Java 8 Streams
Vowels: 4
Consonants: 6

Conclusion

This Java program provides two methods for counting the number of vowels and consonants in a string: a traditional loop and Java 8 streams. Both methods are effective, with the loop method being more straightforward and the stream method offering a more modern and functional approach. These methods are useful in various text-processing tasks, such as analyzing content or validating input data.

Comments