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

Javaで文字列内の母音をカウントする方法をわかりやすく解説

Javaでは、拡張forループと条件分岐を組み合わせることで、文字列に含まれる母音(a、e、i、o、u)の数を簡単にカウントできます。この記事では、基本的な実装方法をサンプルコード付きで解説します。

カウントの仕組み

まず、カウント用の変数 count0 で初期化します。これは、母音の数をこの変数に加算していくためです。

次に、toCharArray() メソッドを使って文字列を1文字ずつ取り出し、Character.toLowerCase() ですべて小文字に変換します。これにより、大文字・小文字を区別せずに母音を判定できるようになります。

for(char ch : myStr.toCharArray()) {
    ch = Character.toLowerCase(ch);
    if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
        ++count;
    }
}

サンプルプログラム

以下は、文字列「Jamie」に含まれる母音の数をカウントする完全なサンプルコードです。

public class Demo {
    public static void main(String[] args) {
        String myStr = "Jamie";
        int count = 0;
        System.out.println("String = "+myStr);
        for(char ch : myStr.toCharArray()) {
            ch = Character.toLowerCase(ch);
            if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
                ++count;
            }
        }
        System.out.println("Vowels = "+count);
    }
}

実行結果

このプログラムを実行すると、次のような出力が得られます。

String = Jamie
Vowels = 3

「Jamie」という文字列には「a」「i」「e」の3つの母音が含まれているため、結果は 3 となります。

ポイントのまとめ

  • toCharArray():文字列をchar型の配列に変換し、1文字ずつ処理できるようにします。
  • Character.toLowerCase():大文字を小文字に統一することで、「A」や「E」などの大文字の母音も正しくカウントできます。
  • 条件分岐では、論理和演算子(||)を使って5つの母音を一度に判定しています。

この手法は初心者向けの練習問題としてもよく使われる基本パターンなので、ぜひマスターしておきましょう。

  1. 【Java】正規表現で括弧()を含む文字列に一致させる方法とサンプルコード

    Javaで文字列の中に括弧「(」や「)」が含まれているかどうかを判定したい場合、正規表現を使うと簡単に実装できます。この記事では、括弧に一致する正規表現の書き方と、実際に動作するサンプルコードを2つのパターンで紹介します。括弧に一致する正規表現以下の正規表現は、括弧を含む文字列を受け入れます。^.*[\\(\\)].*$;このパターンの各要素は次のような意味を持っています。^ … 文字列(行)の先頭に一致します。.* … 0個以上の任意の文字に一致します。[\\(\\)] … 括弧「(」または「)」に一致します。正規表現では括弧は特殊文字のため、バックスラッシュでエスケープする必要があります。

  2. 【Java】正規表現を使って文字列内の母音を検出する方法

    Javaの正規表現では、角括弧 [ ](文字クラス)の中にマッチさせたい文字をまとめて記述できます。このメタ文字「[ ]」は、その中に指定したいずれか1文字に一致することを意味します。したがって、文字列に母音が含まれているかどうかを調べたい場合は、大文字・小文字の母音をすべて角括弧の中に列挙した次のパターンを使用します。[aeiouAEIOU]例1:PatternクラスとMatcherクラスを使う方法まず Pattern.compile() で正規表現をコンパイルし、Matcher オブジェクトを生成します。そして find() メソッドを呼び出すことで、入力文字列の中にパターンに一致する部分