はじめに
この実験では、Java で文字が大文字かどうかをチェックする方法を学びます。この目的のために Character
クラスが提供する便利なツールである Character.isUpperCase()
メソッドを調べます。
実践的な例を通じて、大文字、小文字、および文字以外の文字を含む様々な文字で Character.isUpperCase()
を使用する方法を見て、その動作を理解し、Java プログラムで与えられた文字が大文字かどうかを効果的に判断する方法を学びます。
この実験では、Java で文字が大文字かどうかをチェックする方法を学びます。この目的のために Character
クラスが提供する便利なツールである Character.isUpperCase()
メソッドを調べます。
実践的な例を通じて、大文字、小文字、および文字以外の文字を含む様々な文字で Character.isUpperCase()
を使用する方法を見て、その動作を理解し、Java プログラムで与えられた文字が大文字かどうかを効果的に判断する方法を学びます。
このステップでは、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);
}
}
このコードでは、以下のことを行っています。
char
型の変数 char1
、char2
、char3
を宣言し、それぞれ異なる文字を代入しています。Character.isUpperCase()
を使用して、各文字が大文字かどうかをチェックし、その結果をブール型の変数 (isUpper1
、isUpper2
、isUpper3
) に格納しています。ファイルを保存します (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 プログラムでこのメソッドの使い方を実演し、大文字、小文字、文字以外の文字でテストして、返されるブール値の結果を確認しました。