はじめに
Java の getName() メソッドは、Character クラスの一部であり、与えられた Unicode コードポイントで表される文字に割り当てられた Unicode 名前(利用可能な場合)を返します。このメソッドは、Java プログラムで Unicode 文字を表現する際に非常に役立ちます。
Java の getName() メソッドは、Character クラスの一部であり、与えられた Unicode コードポイントで表される文字に割り当てられた Unicode 名前(利用可能な場合)を返します。このメソッドは、Java プログラムで Unicode 文字を表現する際に非常に役立ちます。
以下のコマンドを使用して、~/project ディレクトリに CharGetName.java という名前のファイルを作成します。
touch ~/project/CharGetName.java
好きなテキストエディタで CharGetName.java ファイルを開きます。
コードの最初の行で、必要なクラスである Character クラスをインポートする必要があります。以下のようにインポートします。
import java.lang.Character;
CharGetName というクラスを定義し、main() メソッドを実装します。main() メソッドでは、Java で "H", "f" などの異なる文字の Unicode 名前を取得する操作を行います。
完全なコードは以下のようになります。
import java.lang.Character;
public class CharGetName {
public static void main(String[] args) {
int codepoint1 = 72; // H
int codepoint2 = 102; // f
int codepoint3 = 0;
String name1 = Character.getName(codepoint1);
String name2 = Character.getName(codepoint2);
String name3 = Character.getName(codepoint3);
System.out.println("The name of character " + Character.toChars(codepoint1)[0] + " is "+name1);
System.out.println("The name of character " + Character.toChars(codepoint2)[0] + " is "+name2);
System.out.println("The name of character with codepoint 0 is "+ name3);
}
}
このステップでは、内部に main メソッドを持つ CharGetName という名前のクラスを定義しました。main メソッドでは、文字の Unicode コードポイントを値とする整数型変数を作成しました。codepoint1 は値 72(H)を持ち、codepoint2 は値 102(f)を持ちます。文字の名前を取得するために Character.getName() メソッドを使用し、その後 System.out.println() メソッドを使用して文字の名前を出力しました。
以下のコマンドを使用して CharGetName Java ファイルをコンパイルします。
javac CharGetName.java
コンパイルプロセスが正常に完了したら、以下のコマンドを使用して java コードを実行します。
java CharGetName
次に、ユーザー入力を受け取り、コンソール上で文字の名前を返すプログラムを作成しましょう。
import java.util.Scanner;
import java.lang.Character;
public class CharGetName {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a character: ");
char ch = scanner.next().charAt(0);
int codepoint = ch;
String name = Character.getName(codepoint);
System.out.println("The name of character "+ch+" is "+name);
}
}
ここでは、ユーザーからの入力を取得するために Scanner オブジェクトを作成しています。入力値を取得するために Scanner.next() メソッドを使用し、その後、その名前を見つけるために Character() メソッドを使用して入力された文字を整数のコードポイントに変換しています。その後、System.out.println() メソッドを使用して文字の名前を出力しています。
以下のコマンドを使用して CharGetName Java ファイルをコンパイルします。
javac CharGetName.java
コンパイルプロセスが正常に完了したら、以下のコマンドを使用して java コードを実行します。
java CharGetName
次に、その名前を見つけたい文字を入力します。たとえば、「A」を入力します。コンソール上にその文字の名前が表示されます。
次に、無効な入力を入力した場合のプログラムの応答を見てみましょう。
import java.util.Scanner;
import java.lang.Character;
public class CharGetName {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a character: ");
char ch = scanner.next().charAt(0);
if(!Character.isDefined(ch)) {
System.out.println("\nINVALID INPUT: Please enter a valid character.");
return;
}
int codepoint = ch;
String name = Character.getName(codepoint);
System.out.println("\nThe name of character "+ch+" is "+name);
}
}
このプログラムでは、入力された文字が定義されているかどうかを確認しています。入力された文字が定義されていない場合、コンソールに「無効な入力:有効な文字を入力してください。」というメッセージを表示し、文字が定義されている場合、以前と同様にその名前を取得し、適切なメッセージとともに表示します。
以下のコマンドを使用して CharGetName Java ファイルをコンパイルします。
javac CharGetName.java
コンパイルプロセスが正常に完了したら、以下のコマンドを使用して java コードを実行します。
java CharGetName
次に、「8」や「$」のような無効な入力を入力します。「無効な入力:有効な文字を入力してください。」というエラー メッセージが表示されます。
次に、割り当てられていない文字を入力として使用した場合のプログラムの応答を見てみましょう。
import java.util.Scanner;
import java.lang.Character;
public class CharGetName {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a character: ");
char ch = scanner.next().charAt(0);
if(!Character.isDefined(ch)) {
System.out.println("\nINVALID INPUT: Please enter a valid character.");
return;
}
String name = Character.getName(ch);
if(name == null) {
System.out.println("\nNO NAME FOUND: There is no assigned name for this character.");
return;
}
System.out.println("\nThe name of character "+ch+" is "+name);
}
}
ここでは、Character.getName(codepoint) ではなく Character.getName(ch) メソッドを使用しています。入力された文字に割り当てられた名前がない場合、null を返します。したがって、返された名前が null かどうかを確認しています。null の場合、「NO NAME FOUND: There is no assigned name for this character.」というメッセージを表示します。
以下のコマンドを使用して CharGetName Java ファイルをコンパイルします。
javac CharGetName.java
コンパイルプロセスが正常に完了したら、以下のコマンドを使用して java コードを実行します。
java CharGetName
次に、null(「\u0000」)のような割り当てられていない文字を入力します。すると、「NO NAME FOUND: There is no assigned name for this character.」というメッセージが表示されます。
この実験では、Java の getName() メソッドについて学び、Java のコード例を実装することで文字の Unicode 名前を取得する方法を学びました。また、Ubuntu システムのターミナルで Java プログラムを作成して実行することで、ユーザー入力を読み取り、エラーを処理する方法も学びました。