Java
 Computer >> コンピューター >  >> プログラミング >> Java

【Java入門】アルファベットが母音か子音かを判定するプログラムの書き方

本記事では、Javaを使って入力されたアルファベットが母音(Vowel)子音(Consonant)かを判定する方法を解説します。

アルファベットのうち、「a」「e」「i」「o」「u」の5つを母音と呼び、それ以外のアルファベットはすべて子音として分類されます。このルールをもとに、if文による条件分岐で簡単に判定プログラムを作成できます。

動作イメージ

まず、プログラムの実行結果の例を見てみましょう。

入力

Enter the character : i

出力

The character : i is a vowel

このように、ユーザーが入力した文字が「i」であれば母音であると判定され、結果が出力されます。

アルゴリズム

判定処理の手順は以下の通りです。

Step 1 - 処理を開始する
Step 2 - char型の変数 my_input を宣言する
Step 3 - ユーザーから値を読み込む、または値を定義する
Step 4 - if文を使い、入力値が 'a' 'e' 'i' 'o' 'u' のいずれかと一致するか確認する。
        一致すれば母音、一致しなければ子音と判定する
Step 5 - 結果を表示する
Step 6 - 処理を終了する

例1:ユーザーからの入力を受け取る場合

この例では、Scannerクラスを使ってユーザーからの入力を受け付け、その文字を判定します。

import java.util.Scanner;
public class VowelAndConsonant {
   public static void main(String[] args) {
      char my_input;
      System.out.println("Required packages have been imported");
      Scanner my_scanner = new Scanner(System.in);
      System.out.println("A reader object has been defined ");
      System.out.print("Enter the character : ");
      my_input = my_scanner.next().charAt(0);
      if(my_input == 'a' || my_input == 'e' || my_input == 'i' || my_input == 'o' || my_input == 'u')
         System.out.println("The character : " +my_input + " is a vowel");
      else
         System.out.println("The character : " +my_input + " is a consonant");
   }
}

実行結果

Required packages have been imported
A reader object has been defined
Enter the character : i
The character : i is a vowel

コードのポイント

  • Scannerクラス:java.utilパッケージに含まれており、標準入力からデータを読み取るために使用します。
  • charAt(0):入力された文字列の先頭の1文字をchar型として取得します。
  • 論理OR演算子(||):複数の条件のいずれかが成立した場合にtrueを返すため、母音5種類との比較を1つのif文でまとめられます。

例2:値をあらかじめ定義しておく場合

次の例では、判定対象の文字をプログラム内であらかじめ定義し、その値をコンソールに表示して判定します。

public class VowelAndConsonant {
   public static void main(String[] args) {
      char my_input = 'i';
      System.out.println("The character is defined as :" +my_input);
      if(my_input == 'a' || my_input == 'e' || my_input == 'i' || my_input == 'o' || my_input == 'u')
         System.out.println("The character : " +my_input + " is a vowel");
      else
         System.out.println("The character : " +my_input + " is a consonant");
   }
}

実行結果

The character is defined as :i
The character : i is a vowel

応用:大文字にも対応させる

上記のコードは小文字のみに対応しています。大文字「A」「E」「I」「O」「U」も母音として判定したい場合は、Character.toLowerCase()メソッドを使って入力を小文字に変換すると便利です。

my_input = Character.toLowerCase(my_scanner.next().charAt(0));

このように前処理を加えることで、大文字・小文字どちらの入力でも正しく母音か子音かを判定できるようになります。

まとめ

本記事では、Javaでアルファベットが母音か子音かを判定する基本的な方法を紹介しました。ポイントは以下の通りです。

  • 母音は「a」「e」「i」「o」「u」の5種類
  • if文と論理OR演算子(||)を組み合わせて判定する
  • Scannerクラスでユーザー入力を受け取り、charAt(0)で1文字を取得する
  • toLowerCase()を使えば大文字にも対応可能

シンプルな条件分岐の練習として、ぜひ実際にコードを書いて動かしてみてください。

  1. 【Java】文字列に少なくとも1つの英数字が含まれているかを判定する正規表現プログラム

    使用する正規表現 次の正規表現は、少なくとも1つの英数字(a〜z、A〜Z、0〜9)を含む文字列にマッチします。 ^.*[a-zA-Z0-9]+.*$ それぞれの構成要素の意味は以下の通りです。 ^.*:文字列の先頭にマッチし、その後に0個以上の任意の文字が続くことを表します。 [a-zA-Z0-9]+:1個以上の英数字にマッチします。「少なくとも1つの英数字が含まれている」という条件は、この部分で実現されています。 .*$:0個以上の任意の文字が続き、文字列の末尾で終わることを表します。 例1:PatternクラスとMatcherクラスを使う方法 import java.util.Sca

  2. Javaで回文を判定するプログラムの書き方【数値・文字列の実例付き】

    回文(パリンドローム)とは、逆から読んでも同じになる文字列や数値のことです。たとえば、121、313、525 といった数値や、「aba」「wow」のような文字列が回文に該当します。この記事では、Javaを使って回文を判定する方法を、数値の場合と文字列の場合の2つのパターンに分けて、サンプルコードと実行結果とともにわかりやすく解説します。回文数をチェックする方法数値が回文かどうかを判定するには、元の数値を1桁ずつ取り出して逆順に組み立て直し、元の値と比較します。具体的には、剰余演算(%10)で末尾の桁を取り出し、それを結果変数に10倍しながら加算していくことで反転した数値を作れます。サンプルコー