Java Program to Count Number of Vowels in a String

In java, the string is a sequence of characters and char is a single digit used to store variables. The char uses 2 bytes in java. In java, BufferedReader and InputStreamReader are used to read the input given by the user from the keyboard. Then readLine() is used for reading a line. The java.io package in java provides input and output through data streams, serialization, and the file system.
We can count the vowels in a string in two ways:
- Iterative
- Recursive
Examples:
Input: GeeksForGeeks Output: Total no of vowels in string are: 5 Input: ChETaN Output: Total no of vowels in string are: 2
Method 1: IterativeÂ
Approach:
- We will traverse through the string’s characters in a for loop starting from index 0 till size-1.
- And check each character if it is a vowel or not and increment the count variable.
Below is the implementation of the above approach:
Java
// Java Program to Count Number of Vowels// in a String in a iterative wayÂ
import java.io.*;Â
public class vowel {    public static void main(String[] args)        throws IOException    {        String str = "GeeksForGeeks";        str = str.toLowerCase();        int count = 0;Â
        for (int i = 0; i < str.length(); i++) {            // check if char[i] is vowel            if (str.charAt(i) == 'a' || str.charAt(i) == 'e'                || str.charAt(i) == 'i'                || str.charAt(i) == 'o'                || str.charAt(i) == 'u') {                // count increments if there is vowel in                // char[i]                count++;            }        }Â
        // display total count of vowels in string        System.out.println(            "Total no of vowels in string are: " + count);    }} |
Output
Total no of vowels in string are: 5
Method 2: Recursive
Approach:
- Check for the base condition if the length of the string is 1, then simply check for that single character if it is a vowel, then return 1 else return 0.
- For dividing the whole string into substrings to return the answer recursively, we will get the answer for the string starting from the first till second last character.
- And finally, return the above answer plus the answer for the check of last character (1 if it is vowel or 0 if it is not)
Below is the implementation of the above approach:
Java
// Java Program to Count Number of Vowels// in a String in a recursive wayÂ
import java.io.*;Â
class GFG {Â
    // isVowel() function returns 1 if the    // character is a vowel and 0 if it is not    static int isVowel(char chars)    {        if (chars == 'a' || chars == 'e' || chars == 'i'            || chars == 'o' || chars == 'u') {            return 1;        }        else {            return 0;        }    }Â
    // recursive function to return the number    // of characters in a string    static int vowelno(String str, int l)    {        if (l == 1) {            return isVowel(str.charAt(l - 1));        }Â
        return vowelno(str, l - 1)            + isVowel(str.charAt(l - 1));    }Â
    public static void main(String[] args)        throws IOException    {        String str = "BufferedOutput";Â
        str = str.toLowerCase();Â
        System.out.println(            "Total number of vowels in string are:");Â
        System.out.println(vowelno(str, str.length()));    }} |
Output
Total number of vowels in string are: 6
Method 3: Using ArrayList and contains() method
Java
// Java Program to Count Number of Vowels// in a StringÂ
import java.io.*;import java.util.*;public class Main{    public static void main(String[] args)throws IOException    {        String str = "GeeksForGeeks";        str = str.toLowerCase();        int count = 0;        String vow ="aeiou";        ArrayList<Character> vowels = new ArrayList<Character>();        for(int i=0;i<vow.length();i++)        {            vowels.add(vow.charAt(i));        }        for (int i = 0; i < str.length(); i++) {            if(vowels.contains(str.charAt(i))){                count++;            }        }Â
        // display total count of vowels in string        System.out.println("Total no of vowels in string are: " + count);    }} |
Output
Total no of vowels in string are: 5



