はじめに
この実験では、Java で文字が大文字かどうかをチェックする方法を学びます。この目的のために Character クラスが提供する便利なツールである Character.isUpperCase() メソッドを調べます。
実践的な例を通じて、大文字、小文字、および文字以外の文字を含む様々な文字で Character.isUpperCase() を使用する方法を見て、その動作を理解し、Java プログラムで与えられた文字が大文字かどうかを効果的に判断する方法を学びます。
Character.isUpperCase() メソッドを使用する
このステップでは、Java で Character.isUpperCase() メソッドを使用して文字が大文字かどうかを判断する方法を調べます。このメソッドは、個々の文字を操作するための便利なメソッドを提供する Character クラスの一部です。
Character.isUpperCase() メソッドは静的メソッドです。つまり、Character クラスのオブジェクトを作成する必要なく、直接 Character クラスに対して呼び出すことができます。このメソッドは 1 つの文字を引数として受け取り、その文字が大文字の場合は true を返し、それ以外の場合は false を返します。
このメソッドの使用方法を示すために、簡単な Java プログラムを作成しましょう。
WebIDE エディタで
HelloJava.javaファイルが開いていない場合は、開きます。既存のコードを以下のコードに置き換えます。
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型の変数char1、char2、char3を宣言し、それぞれ異なる文字を代入しています。 Character.isUpperCase()を使用して、各文字が大文字かどうかをチェックし、その結果をブール型の変数 (isUpper1、isUpper2、isUpper3) に格納しています。- 最後に、結果をコンソールに出力しています。
- 3 つの
ファイルを保存します (Ctrl+S または Cmd+S)。
ターミナルでプログラムをコンパイルします。
javac HelloJava.javaコンパイルされたプログラムを実行します。
java HelloJava以下のような出力が表示されるはずです。
Is 'A' uppercase? true Is 'b' uppercase? false Is '7' uppercase? false
この出力から、Character.isUpperCase() が 'A' を大文字として正しく識別し、'b' と '7' を大文字ではないと識別したことが確認できます。
大文字と小文字が混在する文字でテストする
前のステップでは、個々の文字に対して Character.isUpperCase() を使用しました。今度は、大文字と小文字が混在する文字列を対象にこのメソッドを適用する方法を見てみましょう。これにより、文字列を繰り返し処理して各文字の大文字小文字をチェックする方法を理解することができます。
Java の文字列は文字のシーケンスです。charAt() メソッドを使用することで、文字列内の個々の文字にアクセスできます。このメソッドはインデックス(位置)を引数として受け取り、最初の文字のインデックスは 0 から始まります。
文字列内の文字の大文字小文字をチェックするようにプログラムを修正しましょう。
WebIDE エディタで
HelloJava.javaファイルを開きます。既存のコードを以下のコードに置き換えます。
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が大文字かどうかをチェックしています。 - 最後に、文字、そのインデックス、および大文字チェックの結果を出力しています。
- 大文字、小文字、空白、数字が混在する
ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルでプログラムをコンパイルします。
javac HelloJava.javaコンパイルされたプログラムを実行します。
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() を組み合わせることで、文字が大文字であるかどうかをチェックし、文字以外の文字を無視することができます。
文字列内の大文字の数をカウントし、空白、数字、その他の文字以外の文字を無視するようにプログラムを修正しましょう。
WebIDE エディタで
HelloJava.javaファイルを開きます。既存のコードを以下のコードに置き換えます。
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をインクリメントし、大文字が見つかったことを示すメッセージを出力します。 - ループが終了した後、大文字の総数を出力します。
- 整数型の変数
ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルでプログラムをコンパイルします。
javac HelloJava.javaコンパイルされたプログラムを実行します。
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 プログラムでこのメソッドの使い方を実演し、大文字、小文字、文字以外の文字でテストして、返されるブール値の結果を確認しました。



