はじめに
Java プログラミングにおいて、toLowerCase(char ch) メソッドは、与えられた文字引数を小文字に変換するために使用されます。このメソッドは Java の Character クラスの一部であり、Unicode データファイルによって提供されるケースマッピング情報を使用します。この機能は、ケースの正規化が必要なテキストを処理する際に特に有用です。
この実験では、Java プログラムで toLowerCase(char ch) メソッドを使用する方法を学びます。文字を小文字に変換する簡単なアプリケーションを作成し、ユーザー入力とエラーハンドリング機能を追加して拡張します。
最初の文字変換プログラムを作成する
このステップでは、Java の Character クラスの toLowerCase(char ch) メソッドを使用して文字を小文字に変換する方法を示す Java プログラムを作成します。
文字のケース変換の理解
Java では、文字はプリミティブデータ型 char で表されます。Character クラスは、文字を操作して扱うための様々なメソッドを提供しており、大文字と小文字の変換機能も含まれています。
toLowerCase(char ch) メソッドは文字を入力として受け取り、以下のように動作します。
- 入力が大文字の場合、その文字の小文字バージョンを返します。
- 入力がすでに小文字であるか、文字でない場合、同じ文字を返します。
Java ファイルの作成
まず、プロジェクトディレクトリに新しい Java ファイルを作成しましょう。
- WebIDE のエディタウィンドウを開きます。
- ファイルメニューに移動し、「新規ファイル」をクリックします。
- ファイル名を
CharacterToLowerCase.javaとし、/home/labex/projectディレクトリに保存します。
あるいは、ターミナルを使用してファイルを作成することもできます。
cd ~/project
touch CharacterToLowerCase.java
最初のプログラムを書く
次に、CharacterToLowerCase.java ファイルにコードを書きましょう。
- WebIDE エディタでファイルを開きます。
- 以下のコードをファイルにコピーして貼り付けます。
public class CharacterToLowerCase {
public static void main(String[] args) {
// Create character variables with different cases
char upperCaseChar = 'A';
char lowerCaseChar = 'b';
char nonLetterChar = '5';
// Convert each character to lowercase
char result1 = Character.toLowerCase(upperCaseChar);
char result2 = Character.toLowerCase(lowerCaseChar);
char result3 = Character.toLowerCase(nonLetterChar);
// Print the original and lowercase characters
System.out.println("Original uppercase character: " + upperCaseChar);
System.out.println("After toLowerCase(): " + result1);
System.out.println();
System.out.println("Original lowercase character: " + lowerCaseChar);
System.out.println("After toLowerCase(): " + result2);
System.out.println();
System.out.println("Original non-letter character: " + nonLetterChar);
System.out.println("After toLowerCase(): " + result3);
}
}
このプログラムは、3 種類の異なる文字に対する toLowerCase(char ch) メソッドの動作を示しています。
- 大文字の文字 ('A')
- 小文字の文字 ('b')
- 文字でない文字 ('5')
プログラムのコンパイルと実行
次に、Java プログラムをコンパイルして実行しましょう。
WebIDE でターミナルを開きます。
まだプロジェクトディレクトリにいない場合は、以下のコマンドで移動します。
cd ~/projectJava ファイルをコンパイルします。
javac CharacterToLowerCase.javaコンパイルされたプログラムを実行します。
java CharacterToLowerCase
以下の出力が表示されるはずです。
Original uppercase character: A
After toLowerCase(): a
Original lowercase character: b
After toLowerCase(): b
Original non-letter character: 5
After toLowerCase(): 5
ご覧の通り、大文字の 'A' は小文字の 'a' に変換されましたが、すでに小文字の 'b' と文字でない文字 '5' は変更されていません。
ユーザー入力によるプログラムの拡張
このステップでは、プログラムを拡張してユーザー入力を受け付けるようにします。事前に定義された文字を使用する代わりに、プログラムはユーザーに文字の入力を促し、それを小文字に変換します。
Scanner クラスの理解
Java でユーザー入力を受け付けるには、java.util パッケージの Scanner クラスを使用します。Scanner クラスは、標準入力(キーボード)を含む様々なソースから、さまざまなタイプの入力データ(整数、浮動小数点数、文字列など)を読み取るためのメソッドを提供します。
Scanner クラスの使用方法は以下の通りです。
import java.util.Scanner;でクラスをインポートします。Scanner scanner = new Scanner(System.in);でScannerオブジェクトを作成します。next()、nextInt()などのメソッドを使用して入力を読み取ります。
プログラムの修正
ユーザー入力を受け付けるようにプログラムを修正しましょう。
- WebIDE エディタで
CharacterToLowerCase.javaファイルを開きます。 - 既存のコードを以下のコードに置き換えます。
import java.util.Scanner;
public class CharacterToLowerCase {
public static void main(String[] args) {
// Create a Scanner object to read user input
Scanner scanner = new Scanner(System.in);
// Prompt the user to enter a character
System.out.print("Enter a character: ");
// Read the first character of the input
String input = scanner.next();
char userChar = input.charAt(0);
// Convert the character to lowercase
char lowerCaseChar = Character.toLowerCase(userChar);
// Print the original and lowercase characters
System.out.println("Original character: " + userChar);
System.out.println("Lowercase character: " + lowerCaseChar);
// Close the scanner
scanner.close();
}
}
このコードの主な変更点は以下の通りです。
Scannerクラスをインポートします。- コンソールから入力を読み取るための
Scannerオブジェクトを作成します。 - ユーザーに文字の入力を促します。
- 入力を文字列として読み取り、最初の文字を抽出します。
- 文字を小文字に変換し、元の文字と小文字の文字の両方を表示します。
- リソースを解放するために
Scannerを閉じます。
修正後のプログラムのコンパイルと実行
修正後のプログラムをコンパイルして実行しましょう。
WebIDE でターミナルを開きます。
まだプロジェクトディレクトリにいない場合は、以下のコマンドで移動します。
cd ~/projectJava ファイルをコンパイルします。
javac CharacterToLowerCase.javaコンパイルされたプログラムを実行します。
java CharacterToLowerCaseプロンプトが表示されたら、文字(例えば 'Z')を入力し、Enter キーを押します。
('Z' を入力したと仮定すると)以下のような出力が表示されるはずです。
Enter a character: Z
Original character: Z
Lowercase character: z
異なる文字を入力して、小文字、大文字、および文字でない文字に対するプログラムの動作を確認してみてください。
エラーと無効な入力の処理
前のステップでは、ユーザーが有効な文字を入力した場合、プログラムは正常に動作しました。しかし、ユーザーが空文字列を入力した場合や、入力の読み取りに何らかの問題があった場合、プログラムは例外を投げてクラッシュする可能性があります。このステップでは、潜在的なエラーと無効な入力を処理するようにプログラムを拡張します。
Java での例外処理の理解
Java での例外処理は、try-catch ブロックを使用して行われます。
- 例外を投げる可能性のあるコードは
tryブロックに配置されます。 - 例外を処理するコードは
catchブロックに配置されます。 - 例外の種類を指定することで、特定の例外をキャッチすることができます。
エラーを処理するようにプログラムを修正する
潜在的なエラーを処理するようにプログラムを修正しましょう。
- WebIDE エディタで
CharacterToLowerCase.javaファイルを開きます。 - 既存のコードを以下のコードに置き換えます。
import java.util.Scanner;
public class CharacterToLowerCase {
public static void main(String[] args) {
// Create a Scanner object to read user input
Scanner scanner = new Scanner(System.in);
// Continue until valid input is received
boolean validInput = false;
while (!validInput) {
try {
// Prompt the user to enter a character
System.out.print("Enter a character: ");
// Read the first character of the input
String input = scanner.next();
if (input.isEmpty()) {
System.out.println("Error: Empty input. Please enter a character.");
continue;
}
char userChar = input.charAt(0);
// Convert the character to lowercase
char lowerCaseChar = Character.toLowerCase(userChar);
// Print the original and lowercase characters
System.out.println("Original character: " + userChar);
System.out.println("Lowercase character: " + lowerCaseChar);
// If a character is already lowercase or is not a letter, explain the result
if (userChar == lowerCaseChar) {
if (Character.isLetter(userChar)) {
System.out.println("Note: The character was already lowercase.");
} else {
System.out.println("Note: The character is not a letter, so it remains unchanged.");
}
}
validInput = true; // Exit the loop
} catch (Exception e) {
// Handle any exceptions that might occur
System.out.println("Error: Invalid input. Please try again.");
scanner.nextLine(); // Clear the input buffer
}
}
// Close the scanner
scanner.close();
}
}
このコードの主な変更点は以下の通りです。
- 有効な入力が得られるまで入力を促すループを追加しました。
- 潜在的な例外を処理するための try-catch ブロックを追加しました。
- 入力が空であるかどうかをチェックします。
- 特定の文字が変更されない理由に関する追加情報を追加しました。
- 無効な入力の場合に入力バッファをクリアします。
最終プログラムのコンパイルと実行
拡張されたプログラムをコンパイルして実行しましょう。
WebIDE でターミナルを開きます。
まだプロジェクトディレクトリにいない場合は、以下のコマンドで移動します。
cd ~/projectJava ファイルをコンパイルします。
javac CharacterToLowerCase.javaコンパイルされたプログラムを実行します。
java CharacterToLowerCase
さまざまなシナリオをテストしてみましょう。
大文字を入力する(例:'A'):
Enter a character: A Original character: A Lowercase character: a小文字を入力する(例:'a'):
Enter a character: a Original character: a Lowercase character: a Note: The character was already lowercase.文字でない文字を入力する(例:'5'):
Enter a character: 5 Original character: 5 Lowercase character: 5 Note: The character is not a letter, so it remains unchanged.文字を入力せずに Enter キーを押すか、無効な入力を試す:
Enter a character: Error: Invalid input. Please try again. Enter a character:
これで、プログラムはさまざまな入力シナリオを適切に処理し、ユーザーに有益なフィードバックを提供します。
まとめ
この実験では、Java の toLowerCase(char ch) メソッドを使用して文字を小文字に変換する方法を学びました。以下に、達成したことをまとめます。
toLowerCase(char ch)メソッドを使用して文字の大文字小文字変換を実証する基本的な Java プログラムを作成しました。Scannerクラスを使用してユーザー入力を受け付けるようにプログラムを拡張し、ユーザーが独自の文字を入力して変換できるようにしました。try-catch ブロックを使用したエラー処理を追加して、無効な入力を適切に処理することで、プログラムの堅牢性を向上させました。
toLowerCase(char ch)メソッドに渡されたときに特定の文字が変更されない理由を説明する有益なメッセージを追加しました。
これらのスキルは Java プログラミングにおいて基本的なものであり、以下のような多くの実世界のシナリオに適用できます。
- テキスト処理と正規化
- フォーム検証
- 検索機能(大文字小文字を区別しない検索)
- データのクリーニングと準備
Java の学習を続ける際には、Character クラスには isLetter()、isDigit()、isUpperCase()、isLowerCase() など、文字を操作するための他の多くの便利なメソッドが用意されていることを覚えておいてください。



