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
- Prompt for Input: Use the
Scanner
class to read a string input from the user. - Initialize Counters: Initialize variables to count the number of vowels and consonants.
- Iterate Through the String: Loop through each character in the string, checking if it's a vowel or consonant.
- 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.
- If the character is a vowel (a, e, i, o, u), the
- 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. Thechars()
method converts the string into anIntStream
of character codes. Thefilter()
method is used to check whether each character is a vowel or consonant, and thecount()
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
Post a Comment
Leave Comment