[Solved] How to count Vowels and Consonants in Java String Word? Example (original) (raw)
Hello guys, if you are wondering how to count number of vowels and consonants in a given word in Java then you have come to the right place. In the past, I have shared 100+ data structure questions and more than 75 programming interview questions, and In this article, we will take on a popular programming exercise of counting vowels in a word. You need to write a Java program to count how many vowels in a String, which is entered from the command prompt. It's similar to the program of counting the occurrence of characters in a String, in fact, it's a special case, where you need to count occurrences of all vowels, which includes five characters a, e, i, o and u.
We will also use Scanner to get input from the user to make this this program an interactive exercise as shown in this article. Though I have put down all code inside the main method for quick testing.
If you are asked to write this program as part of your homework or during the interview, better writing a method called public int countVowels(String word) and put the logic of counting vowels there. That's a better coding style than writing everything inside the main method.
By the way, you can also use this logic to count number of consonants in a Java String. What you need to do is first count number of vowels and then subtract those characters from length of String, but remember this will only work if your String contains only alphabetic words, if it contains special character like @, _, | or numbers like 1,2,3 etc, than it will not work.
In that case you need to extend your logic to only count consonants, by extending your switch case to include rest of 21 characters from English alphabets.
Java Program to count vowels and consonants in String
Here is our complete Java Program to count the number of vowel and consonants in Java:
import java.util.Scanner;
/**
Java Program to count vowels in a String. It accept a String from command prompt
and count how many vowels it contains. To revise, 5 letters a, e, i, o and u are
known as vowels in English. */ public class VowelCounter {
public static void main(String args[]) { System.out.println("Please enter some text"); Scanner reader = new Scanner(System.in);
String input = reader.nextLine(); char[] letters = input.toCharArray(); int count = 0;for (char c : letters) { switch (c) { case 'a': case 'e': case 'i': case 'o': case 'u': count++; break; default: // no count increment } } System.out.println("Number of vowels in String [" + input + "] is : " + count); }
}
Output: Please enter some text How many vowels in this String Number of vowels in String [How many vowels in this String] is : 7
You can see that the above String contains 7 vowel characters, highlighted by red font. This method is pretty quick as we are only accessing the array and the using switch to compare it to another character.
If you notice the switch statement that you will see that we are using fall-through approach, means there is no break for all five cases, as you don't need to put break after every case. it will only increase count at one time, because increment is done at last case statement.
Thanks for reading this article so far. If you find this question interesting and my solution worth learning then big thank you. Feel free to ask any question or doubt you have in comment section.