Méthode forDigit de la classe Character en Java

JavaBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous allez découvrir la méthode Java forDigit(), qui fait partie de la classe Character. Cette méthode renvoie la représentation de caractère spécifiée pour le chiffre spécifié conformément à la base spécifiée.

Créer un fichier Java

Créez un fichier Java nommé CharForDigit.java dans le répertoire ~/project à l'aide de la commande suivante :

touch ~/project/CharForDigit.java

Ajouter le code initial

Ajoutez le code suivant au fichier CharForDigit.java :

public class CharForDigit {
    public static void main(String[] args) {
        int n1 = 8;
        int n2 = 23;
        int n3 = 30;
        char ch1 = Character.forDigit(n1, 9);
        char ch2 = Character.forDigit(n2, 25);
        char ch3 = Character.forDigit(n3, 36);
        System.out.println("The char representation of " + n1 + " in radix 9 is " + ch1);
        System.out.println("The char representation of " + n2 + " in radix 25 is " + ch2);
        System.out.println("The char representation of " + n3 + " in radix 36 is " + ch3);
    }
}

Ce code crée une classe CharForDigit avec une méthode main. La méthode main montre comment utiliser la méthode forDigit() pour obtenir la représentation de caractère d'un chiffre dans différentes bases.

Compiler et exécuter le code

Compilez le fichier CharForDigit.java à l'aide de la commande suivante :

javac CharForDigit.java

Ensuite, exécutez le code à l'aide de la commande suivante :

java CharForDigit

Vous devriez voir la sortie suivante :

The char representation of 8 in radix 9 is 8
The char representation of 23 in radix 25 is n
The char representation of 30 in radix 36 is u

Cette sortie confirme que la méthode forDigit() fonctionne comme prévu.

Ajouter une entrée utilisateur

Maintenant, modifions le code pour accepter l'entrée de l'utilisateur pour le chiffre et la base. Ajoutez le code suivant après le code initial :

Scanner sc = new Scanner(System.in);
System.out.print("Enter digit: ");
int d = sc.nextInt();
System.out.print("Enter radix: ");
int r = sc.nextInt();
char result = Character.forDigit(d, r);
System.out.println("The character at radix \'" + r + "\' for the digit " + d + " is: " + result);

Ce code invite l'utilisateur à entrer le chiffre et la base, lit l'entrée à partir de la console et utilise la méthode forDigit() pour obtenir la représentation de caractère du chiffre.

Compiler et exécuter le code avec une entrée utilisateur

Compilez le fichier CharForDigit.java modifié à l'aide de la commande suivante :

javac CharForDigit.java

Ensuite, exécutez le code à l'aide de la commande suivante :

java CharForDigit

Vous devriez voir l'invite suivante dans la console :

Enter digit:

Entrez un chiffre (par exemple 12) et appuyez sur Entrée. Vous devriez voir l'invite suivante :

Enter radix:

Entrez une base (par exemple 16) et appuyez sur Entrée. Vous devriez ensuite voir la sortie suivante :

The character at radix '16' for the digit 12 is: c

Cette sortie confirme que le code modifié fonctionne comme prévu.

Test pour une entrée invalide

Modifiez le code pour gérer les entrées invalides de l'utilisateur. Ajoutez le code suivant après le code d'entrée utilisateur :

} catch (InputMismatchException e) {
    System.out.println("Invalid input!");
}

Ce code capture toute InputMismatchException levée par la classe Scanner lorsque l'utilisateur entre une entrée qui ne peut pas être analysée comme un entier.

Compiler et exécuter le code modifié

Compilez le fichier CharForDigit.java modifié à l'aide de la commande suivante :

javac CharForDigit.java

Ensuite, exécutez le code à l'aide de la commande suivante :

java CharForDigit

Vous devriez voir l'invite suivante dans la console :

Enter digit:

Entrez une entrée non numérique (par exemple "abc") et appuyez sur Entrée. Vous devriez voir la sortie suivante :

Invalid input!

Cette sortie confirme que le code gère les entrées invalides comme prévu.

Test pour une base invalide

Modifiez le code pour vérifier si la base entrée est valide. Ajoutez le code suivant après le code d'entrée utilisateur :

if (r < Character.MIN_RADIX || r > Character.MAX_RADIX) {
    System.out.println("Invalid radix!");
    return;
}

Ce code vérifie si la base entrée est inférieure à la base minimale ou supérieure à la base maximale. Dans ce cas, il affiche un message et termine le programme.

Compiler et exécuter le code modifié

Compilez le fichier CharForDigit.java modifié à l'aide de la commande suivante :

javac CharForDigit.java

Ensuite, exécutez le code à l'aide de la commande suivante :

java CharForDigit

Vous devriez voir l'invite suivante dans la console :

Enter digit:

Entrez un chiffre (par exemple 6) et appuyez sur Entrée. Vous devriez voir l'invite suivante :

Enter radix:

Entrez une base inférieure à 2 ou supérieure à 36 (par exemple 1 ou 100) et appuyez sur Entrée. Vous devriez voir la sortie suivante :

Invalid radix!

Cette sortie confirme que le code gère les bases invalides comme prévu.

Résumé

Dans ce laboratoire, vous avez appris à utiliser la méthode forDigit() de la classe Character pour obtenir la représentation sous forme de caractère d'un chiffre dans une base spécifiée. Vous avez également appris à gérer les entrées utilisateur et à vérifier si les entrées sont valides.