Javaで文中の母音と子音の数を数える方法を解説
この記事では、Javaを使って文中の母音と子音の数を数える方法を解説します。アルファベットのうち「a」「e」「i」「o」「u」を母音と呼び、それ以外のアルファベットを子音と呼びます。
まず、実際の入力と出力のイメージを見てみましょう。
入力
今回入力する文字列は次のとおりです。
Hello, my name is Charlie
出力
期待される実行結果は次のとおりです。
文に含まれる母音の数: 8 文に含まれる子音の数: 12
アルゴリズム
ステップ1: 開始 ステップ2: 整数型の vowels_count と consonants_count、および文字列型の my_str を宣言する ステップ3: ユーザーに文字列の入力を促す(または文字列をあらかじめ定義する) ステップ4: 入力された値を読み込む ステップ5: forループで各文字を1文字ずつ確認し、母音か子音かを判定する。該当するカウンターを1ずつ増やして記録する ステップ6: 結果を表示する ステップ7: 終了
例1: ユーザーからの入力を受け取る場合
ここでは、Scannerクラスを使ってユーザーが入力した文字列を読み込みます。プロンプトが表示されたら、好きな文章を入力して動作を確認できます。
import java.util.Scanner;
public class VowelAndConsonants {
public static void main(String[] args) {
int vowels_count, consonants_count;
String my_str;
vowels_count = 0;
consonants_count = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("スキャナーオブジェクトを定義しました");
System.out.print("文章を入力してください: ");
my_str = scanner.nextLine();
my_str = my_str.toLowerCase();
for (int i = 0; i < my_str.length(); ++i) {
char ch = my_str.charAt(i);
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
++vowels_count;
}
else if ((ch >= 'a' && ch <= 'z')) {
++consonants_count;
}
}
System.out.println("文に含まれる母音の数: " + vowels_count);
System.out.println("文に含まれる子音の数: " + consonants_count);
}
}
実行結果
スキャナーオブジェクトを定義しました 文章を入力してください: Hello, my name is Charlie 文に含まれる母音の数: 8 文に含まれる子音の数: 12
例2: 文字列をあらかじめ定義しておく場合
こちらの例では、文字列がコード内であらかじめ定義されており、その値を取得してコンソールに表示します。なお、この例の文字列は「Charie」(「Charlie」より l が1つ少ない表記)となっているため、子音の数は11になります。
public class VowelAndConsonants {
public static void main(String[] args) {
int vowels_count, consonants_count;
vowels_count = 0;
consonants_count = 0;
String my_str = "Hello, my name is Charie";
System.out.println("対象の文字列: " + my_str);
my_str = my_str.toLowerCase();
for (int i = 0; i < my_str.length(); ++i) {
char ch = my_str.charAt(i);
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
++vowels_count;
}
else if ((ch >= 'a' && ch <= 'z')) {
++consonants_count;
}
}
System.out.println("文に含まれる母音の数: " + vowels_count);
System.out.println("文に含まれる子音の数: " + consonants_count);
}
}
実行結果
対象の文字列: Hello, my name is Charie 文に含まれる母音の数: 8 文に含まれる子音の数: 11
ポイント解説
toLowerCase()で文字列をすべて小文字に変換することで、「A」と「a」を同じ母音として扱えます。charAt(i)で文字列から1文字ずつ取り出し、if文で母音かどうかを判定します。- 空白やカンマなどの記号はどちらの条件にも一致しないため、カウントには含まれません。
- 子音の判定では
(ch >= 'a' && ch <= 'z')という範囲チェックを行い、アルファベット以外の文字を除外しています。
-
Javaでカウンタープログラムを実装する方法をわかりやすく解説
この記事では、JavaのSwingを使ってシンプルなカウンター(数を数える)アプリケーションを実装する方法を解説します。このプログラムでは、JLabelでカウント用のラベルを表示し、JTextFieldで現在のカウント値を保持し、JButtonで「追加(Add)」「削除(Remove)」「リセット(Reset)」の3つのボタンを作成します。 「Add」ボタンをクリックするとJTextField内のカウントが1ずつ増加し、「Remove」ボタンをクリックすると1ずつ減少します。さらに「Reset」ボタンをクリックすると、カウントは0にリセットされます。 実装例 import java.awt.*
-
セットを使って文字列内の母音の数をカウントするPythonプログラム
本記事では、Pythonを使って文字列内に含まれる母音の数をカウントする方法について解説します。セット(set)を活用した効率的な実装を中心に、初心者の方にもわかりやすく説明していきます。 問題の概要 問題文:任意の文字列が与えられたとき、その文字列に含まれる母音の数をセットを使って数えます。 基本的なアプローチとしては、文字列全体を先頭から順に走査し、各文字が母音であるかどうかを判定します。母音であればカウントを1ずつ増やしていき、最終的な合計を出力します。 実装例 def vowel_count(str_): count = 0 # 母音をセットとして定義 vowe