Java で文字が大文字かどうかをチェックする方法

JavaJavaBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Java で文字が大文字かどうかをチェックする方法を学びます。この目的のために Character クラスが提供する便利なツールである Character.isUpperCase() メソッドを調べます。

実践的な例を通じて、大文字、小文字、および文字以外の文字を含む様々な文字で Character.isUpperCase() を使用する方法を見て、その動作を理解し、Java プログラムで与えられた文字が大文字かどうかを効果的に判断する方法を学びます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/booleans("Booleans") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/StringManipulationGroup -.-> java/strings("Strings") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/data_types -.-> lab-559938{{"Java で文字が大文字かどうかをチェックする方法"}} java/booleans -.-> lab-559938{{"Java で文字が大文字かどうかをチェックする方法"}} java/if_else -.-> lab-559938{{"Java で文字が大文字かどうかをチェックする方法"}} java/for_loop -.-> lab-559938{{"Java で文字が大文字かどうかをチェックする方法"}} java/strings -.-> lab-559938{{"Java で文字が大文字かどうかをチェックする方法"}} java/string_methods -.-> lab-559938{{"Java で文字が大文字かどうかをチェックする方法"}} end

Character.isUpperCase() メソッドの使用

このステップでは、Java で Character.isUpperCase() メソッドを使用して文字が大文字かどうかを判断する方法を調べます。このメソッドは、個々の文字を操作するための便利なメソッドを提供する Character クラスの一部です。

Character.isUpperCase() メソッドは静的メソッドです。つまり、Character クラスのオブジェクトを作成する必要なく、直接 Character クラスに対して呼び出すことができます。このメソッドは 1 つの文字を引数として受け取り、その文字が大文字の場合は true を返し、それ以外の場合は false を返します。

このメソッドの使用方法を示すために、簡単な Java プログラムを作成しましょう。

  1. WebIDE エディタで HelloJava.java ファイルが開いていない場合は、開きます。

  2. 既存のコードを以下のコードに置き換えます。

    public class HelloJava {
        public static void main(String[] args) {
            char char1 = 'A';
            char char2 = 'b';
            char char3 = '7';
    
            boolean isUpper1 = Character.isUpperCase(char1);
            boolean isUpper2 = Character.isUpperCase(char2);
            boolean isUpper3 = Character.isUpperCase(char3);
    
            System.out.println("Is '" + char1 + "' uppercase? " + isUpper1);
            System.out.println("Is '" + char2 + "' uppercase? " + isUpper2);
            System.out.println("Is '" + char3 + "' uppercase? " + isUpper3);
        }
    }

    このコードでは、以下のことを行っています。

    • 3 つの char 型の変数 char1char2char3 を宣言し、それぞれ異なる文字を代入しています。
    • Character.isUpperCase() を使用して、各文字が大文字かどうかをチェックし、その結果をブール型の変数 (isUpper1isUpper2isUpper3) に格納しています。
    • 最後に、結果をコンソールに出力しています。
  3. ファイルを保存します (Ctrl+S または Cmd+S)。

  4. ターミナルでプログラムをコンパイルします。

    javac HelloJava.java
  5. コンパイルされたプログラムを実行します。

    java HelloJava

    以下のような出力が表示されるはずです。

    Is 'A' uppercase? true
    Is 'b' uppercase? false
    Is '7' uppercase? false

この出力から、Character.isUpperCase() が 'A' を大文字として正しく識別し、'b' と '7' を大文字ではないと識別したことが確認できます。

大小文字混合の文字でテスト

前のステップでは、個々の文字に対して Character.isUpperCase() を使用しました。今度は、大文字と小文字が混在する文字列を対象にこのメソッドを適用する方法を見てみましょう。これにより、文字列を繰り返し処理して各文字の大文字小文字をチェックする方法を理解することができます。

Java の文字列は文字のシーケンスです。charAt() メソッドを使用することで、文字列内の個々の文字にアクセスできます。このメソッドはインデックス(位置)を引数として受け取り、最初の文字のインデックスは 0 から始まります。

文字列内の文字の大文字小文字をチェックするようにプログラムを修正しましょう。

  1. WebIDE エディタで HelloJava.java ファイルを開きます。

  2. 既存のコードを以下のコードに置き換えます。

    public class HelloJava {
        public static void main(String[] args) {
            String testString = "Hello Java 123";
    
            System.out.println("Checking characters in the string: \"" + testString + "\"");
    
            for (int i = 0; i < testString.length(); i++) {
                char currentChar = testString.charAt(i);
                boolean isUpper = Character.isUpperCase(currentChar);
                System.out.println("Character '" + currentChar + "' at index " + i + " is uppercase? " + isUpper);
            }
        }
    }

    この更新されたコードでは、以下のことを行っています。

    • 大文字、小文字、空白、数字が混在する String 型の変数 testString を定義しています。
    • for ループを使用して、文字列の各文字を繰り返し処理しています。ループはインデックス 0 から文字列の長さ(ただし、文字列の長さ自体は含まない)まで実行されます。
    • ループ内で、testString.charAt(i) を使用して現在のインデックス i の文字を取得しています。
    • その後、Character.isUpperCase() を使用して currentChar が大文字かどうかをチェックしています。
    • 最後に、文字、そのインデックス、および大文字チェックの結果を出力しています。
  3. ファイルを保存します(Ctrl+S または Cmd+S)。

  4. ターミナルでプログラムをコンパイルします。

    javac HelloJava.java
  5. コンパイルされたプログラムを実行します。

    java HelloJava

    文字列内の各文字のチェック結果が表示され、以下のような出力が得られるはずです。

    Checking characters in the string: "Hello Java 123"
    Character 'H' at index 0 is uppercase? true
    Character 'e' at index 1 is uppercase? false
    Character 'l' at index 2 is uppercase? false
    Character 'l' at index 3 is uppercase? false
    Character 'o' at index 4 is uppercase? false
    Character ' ' at index 5 is uppercase? false
    Character 'J' at index 6 is uppercase? true
    Character 'a' at index 7 is uppercase? false
    Character 'v' at index 8 is uppercase? false
    Character 'a' at index 9 is uppercase? false
    Character ' ' at index 10 is uppercase? false
    Character '1' at index 11 is uppercase? false
    Character '2' at index 12 is uppercase? false
    Character '3' at index 13 is uppercase? false

これにより、文字列から抽出した文字に対して Character.isUpperCase() がどのように機能するかがわかります。このメソッドは 'H' と 'J' を大文字として正しく識別しています。

文字以外の文字を無視する

前のステップでは、Character.isUpperCase() が空白や数字などの文字以外の文字に対して false を返すことを見ました。多くの場合、テキストを分析する際には文字のみに関心があり、他の文字は無視したいと思うことがあります。

Character クラスには、もう 1 つ便利なメソッド Character.isLetter() があります。このメソッドは、文字がアルファベット(大文字または小文字)である場合は true を返し、それ以外の場合は false を返します。Character.isLetter()Character.isUpperCase() を組み合わせることで、文字が大文字であるかどうかをチェックし、文字以外の文字を無視することができます。

文字列内の大文字の数をカウントし、空白、数字、その他の文字以外の文字を無視するようにプログラムを修正しましょう。

  1. WebIDE エディタで HelloJava.java ファイルを開きます。

  2. 既存のコードを以下のコードに置き換えます。

    public class HelloJava {
        public static void main(String[] args) {
            String testString = "Hello Java 123";
            int uppercaseCount = 0;
    
            System.out.println("Counting uppercase letters in the string: \"" + testString + "\"");
    
            for (int i = 0; i < testString.length(); i++) {
                char currentChar = testString.charAt(i);
    
                // Check if the character is a letter AND if it is uppercase
                if (Character.isLetter(currentChar) && Character.isUpperCase(currentChar)) {
                    uppercaseCount++;
                    System.out.println("Found uppercase letter: '" + currentChar + "' at index " + i);
                }
            }
    
            System.out.println("Total uppercase letters found: " + uppercaseCount);
        }
    }

    このコードでは、以下のことを行っています。

    • 整数型の変数 uppercaseCount を 0 で初期化しています。
    • ループ内で、if (Character.isLetter(currentChar) && Character.isUpperCase(currentChar)) という if 条件を追加しています。&& 演算子は「かつ」を意味します。この条件は、Character.isLetter(currentChar)true であり、かつ Character.isUpperCase(currentChar)true である場合にのみ true になります。
    • 条件が true の場合、uppercaseCount をインクリメントし、大文字が見つかったことを示すメッセージを出力します。
    • ループが終了した後、大文字の総数を出力します。
  3. ファイルを保存します(Ctrl+S または Cmd+S)。

  4. ターミナルでプログラムをコンパイルします。

    javac HelloJava.java
  5. コンパイルされたプログラムを実行します。

    java HelloJava

    以下のような出力が表示されるはずです。

    Counting uppercase letters in the string: "Hello Java 123"
    Found uppercase letter: 'H' at index 0
    Found uppercase letter: 'J' at index 6
    Total uppercase letters found: 2

この出力から、プログラムが小文字、空白、数字を無視して、大文字のみ('H' と 'J')を正しく識別してカウントしたことがわかります。

まとめ

この実験では、Java で静的メソッド Character.isUpperCase() を使用して文字が大文字かどうかをチェックする方法を学びました。このメソッドは 1 つの文字を入力として受け取り、その文字が大文字かどうかを示すブール値を返します。簡単な Java プログラムでこのメソッドの使い方を実演し、大文字、小文字、文字以外の文字でテストして、返されるブール値の結果を確認しました。