Java Character getName Method

JavaJavaBeginner
Practice Now

Introduction

The getName() method in Java is a part of the Character class which returns the Unicode name (if available) assigned to the character represented by a given Unicode code point. This method is very useful while representing the Unicode characters in your Java program.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("`Java`")) -.-> java/ProgrammingTechniquesGroup(["`Programming Techniques`"]) java(("`Java`")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["`Object-Oriented and Advanced Concepts`"]) java(("`Java`")) -.-> java/BasicSyntaxGroup(["`Basic Syntax`"]) java(("`Java`")) -.-> java/DataStructuresGroup(["`Data Structures`"]) java(("`Java`")) -.-> java/StringManipulationGroup(["`String Manipulation`"]) java(("`Java`")) -.-> java/SystemandDataProcessingGroup(["`System and Data Processing`"]) java/ProgrammingTechniquesGroup -.-> java/scope("`Scope`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("`Classes/Objects`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/class_methods("`Class Methods`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/modifiers("`Modifiers`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/oop("`OOP`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/packages_api("`Packages / API`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("`User Input`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/wrapper_classes("`Wrapper Classes`") java/BasicSyntaxGroup -.-> java/identifier("`Identifier`") java/DataStructuresGroup -.-> java/arrays("`Arrays`") java/BasicSyntaxGroup -.-> java/comments("`Comments`") java/BasicSyntaxGroup -.-> java/data_types("`Data Types`") java/BasicSyntaxGroup -.-> java/if_else("`If...Else`") java/BasicSyntaxGroup -.-> java/operators("`Operators`") java/BasicSyntaxGroup -.-> java/output("`Output`") java/StringManipulationGroup -.-> java/strings("`Strings`") java/BasicSyntaxGroup -.-> java/variables("`Variables`") java/SystemandDataProcessingGroup -.-> java/string_methods("`String Methods`") java/SystemandDataProcessingGroup -.-> java/system_methods("`System Methods`") subgraph Lab Skills java/scope -.-> lab-117495{{"`Java Character getName Method`"}} java/classes_objects -.-> lab-117495{{"`Java Character getName Method`"}} java/class_methods -.-> lab-117495{{"`Java Character getName Method`"}} java/modifiers -.-> lab-117495{{"`Java Character getName Method`"}} java/oop -.-> lab-117495{{"`Java Character getName Method`"}} java/packages_api -.-> lab-117495{{"`Java Character getName Method`"}} java/user_input -.-> lab-117495{{"`Java Character getName Method`"}} java/wrapper_classes -.-> lab-117495{{"`Java Character getName Method`"}} java/identifier -.-> lab-117495{{"`Java Character getName Method`"}} java/arrays -.-> lab-117495{{"`Java Character getName Method`"}} java/comments -.-> lab-117495{{"`Java Character getName Method`"}} java/data_types -.-> lab-117495{{"`Java Character getName Method`"}} java/if_else -.-> lab-117495{{"`Java Character getName Method`"}} java/operators -.-> lab-117495{{"`Java Character getName Method`"}} java/output -.-> lab-117495{{"`Java Character getName Method`"}} java/strings -.-> lab-117495{{"`Java Character getName Method`"}} java/variables -.-> lab-117495{{"`Java Character getName Method`"}} java/string_methods -.-> lab-117495{{"`Java Character getName Method`"}} java/system_methods -.-> lab-117495{{"`Java Character getName Method`"}} end

Set Up

Create a file named CharGetName.java in the ~/project directory using the command:

touch ~/project/CharGetName.java

Open the CharGetName.java file in your preferred text editor.

Importing the Required Class

In the first line of the code, we need to import the required class that is Character class. We will import it as below-

import java.lang.Character;

Define a Class

Define a class CharGetName and implement the main() method. In the main() method, we will perform the operation of getting the Unicode name of different characters like "H", "f", etc in Java.

Full code looks like below-

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);
    }
}

In this step, we have defined a class named CharGetName with the main method inside it. In the main method, we have created an integer variable with the Unicode code point of characters as its values: codepoint1 having a value of 72(H) and codepoint2 having a value of 102 (f). We have used the Character.getName() method to get the names of the characters and then we have printed the name of the characters using System.out.println() method.

Compile and Run the Java Program

Compile the CharGetName Java file using the following command:

javac CharGetName.java

Once the compilation process completes successfully, run the java code by using the following command:

java CharGetName

Editing the Input Value

Now, let's create a program that will take the user input and return the name of the character on a console.

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);
    }
}

Here, a Scanner object is created to get input from the user. We are using the Scanner.next() method to get the input value, and then, we are converting the entered character to an integer codepoint by using the Character() method in order to find its name. After that, we have printed the name of the character by making use of System.out.println() method.

Compile and Run the Java Program

Compile the CharGetName Java file using the following command:

javac CharGetName.java

Once the compilation process completes successfully, run the java code by using the following command:

java CharGetName

Now, enter the character whose name you want to find. For example, enter "A". You will get the name of that character on the console.

Using Invalid Character as Input

Now, let's see how the program will respond if we enter an invalid input.

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);
    }
}

In this program, we are checking whether the entered character is defined or not. If the entered character is not defined, then we will print a message to the console saying "Invalid input: Please enter a valid character." and if the character is defined then we will get its name like before and print it out with a proper message.

Compile and Run the Java Program

Compile the CharGetName Java file using the following command:

javac CharGetName.java

Once the compilation process completes successfully, run the java code by using the following command:

java CharGetName

Now, enter an invalid input like "8" or "$". You will get an error message saying "INVALID INPUT: Please enter a valid character.".

Using an Unassigned Character as Input

Now, let's see how the program will respond if we use an unassigned character as input.

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);
    }
}

Here, we are making use of the Character.getName(ch) method instead of using Character.getName(codepoint). If the entered character does not have a name assigned then it will return null. So, we are checking if the returned name is null or not. If it is null, then we will print a message saying "NO NAME FOUND: There is no assigned name for this character."

Compile and Run the Java Program

Compile the CharGetName Java file using the following command:

javac CharGetName.java

Once the compilation process completes successfully, run the java code by using the following command:

java CharGetName

Now, enter an unassigned character like null ("\u0000") and you will get a message saying "NO NAME FOUND: There is no assigned name for this character."

Summary

In this lab, we learned about the getName() method in Java and how to use it to get the Unicode name of characters by implementing Java code examples. We also learned how to read user input for it and how to handle errors by creating and running a Java program in the terminal of Ubuntu system.

Other Java Tutorials you may like