Java code

Check vowel or consonant in Java

Question: Write a program that prompts the user to enter a letter and check whether the letter is a vowel or consonant. Must display any input with non-letter characters. This is based on a question from Java textbook by Dr. Daniel Liang.


Solution 1: The following code checks if the user input only contains one letter and display a message when there are more than one letter.

public class VolConst { 
 public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
  System.out.print("Enter a letter: ");
  String s = input.nextLine(); 
  if (s.length() != 1) {
   System.out.println("You must enter exactly one character");
   return;
  } 
  char ch = Character.toUpperCase(s.charAt(0));
  if (ch > 'Z' || ch < 'A') {
   System.out.println(s + " is an invalid input");
   return;
  } 
  if (ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') {
   System.out.println(s + " is a vowel");
   return;
  }
  System.out.println(s + " is a consonant"); 
 } 
}

Solution 2: The following code accomplish the same task but does not verify if the user only input one letter. When a user enter more than one letter, the program takes the first letter in memory.

public class VolConst {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.print("Enter a letter: ");
    char letter = input.nextLine().charAt(0);
    
    if (Character.toUpperCase(letter) == 'A' || Character.toUpperCase(letter) == 'E' || Character.toUpperCase(letter) == 'I' 
        || Character.toUpperCase(letter) == 'O' || Character.toUpperCase(letter) == 'U')
      System.out.println(letter + " is a vowel");
    else if (Character.isLetter(letter))
      System.out.println(letter + " is a consonant");
    else
      System.out.println(letter + " is an invalid input");
  }
}

Note the Character.isLetter() function can be used to check if the user entered anything other than letters.

Output:
Sample Run 1
Enter a letter: B
B is a consonant

Sample Run 2
Enter a letter grade: a
a is a vowel

Sample Run 3
Enter a letter grade: #
# is an invalid input