Count the number of vowels in Java
Understanding Vowel Counting
Vowel counting involves determining the number of vowels (a, e, i, o, u) in a given string.
We will explore three different methods to count the vowels in a string using Java.
Method 1: Using a Loop
This method iterates through the string and counts each vowel.
import java.util.Scanner;
public class VowelCounter {
public static int countVowels(String str) {
int count = 0;
str = str.toLowerCase();
for (char ch : str.toCharArray()) {
if ("aeiou".indexOf(ch) != -1) {
count++;
}
}
return count;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a string: ");
String str = scanner.nextLine();
System.out.println("Number of vowels: " + countVowels(str));
scanner.close();
}
}
Output: Number of vowels: 3
Method 2: Using Recursion
This method counts vowels recursively.
import java.util.Scanner;
public class VowelCounterRecursive {
public static int countVowelsRecursive(String str, int index) {
if (index == str.length()) return 0;
char ch = Character.toLowerCase(str.charAt(index));
int count = ("aeiou".indexOf(ch) != -1) ? 1 : 0;
return count + countVowelsRecursive(str, index + 1);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a string: ");
String str = scanner.nextLine();
System.out.println("Number of vowels: " + countVowelsRecursive(str, 0));
scanner.close();
}
}
Output: Number of vowels: 3
Method 3: Using Streams
This method uses Java Streams to count vowels efficiently.
import java.util.Scanner;
public class VowelCounterStream {
public static long countVowelsStream(String str) {
return str.toLowerCase().chars()
.filter(ch -> "aeiou".indexOf(ch) != -1)
.count();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a string: ");
String str = scanner.nextLine();
System.out.println("Number of vowels: " + countVowelsStream(str));
scanner.close();
}
}
Output: Number of vowels: 4