Método forDigit() em Java

JavaBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá sobre o método Java forDigit(), que faz parte da classe Character. Este método retorna a representação de caractere especificada para o dígito especificado de acordo com a base especificada (radix).

Criar um Arquivo Java

Crie um arquivo Java chamado CharForDigit.java no diretório ~/project usando o seguinte comando:

touch ~/project/CharForDigit.java

Adicionar o Código Inicial

Adicione o seguinte código ao arquivo 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);
    }
}

Este código cria uma classe CharForDigit com um método main. O método main demonstra como usar o método forDigit() para obter a representação de caractere de um dígito em diferentes bases (radix).

Compilar e Executar o Código

Compile o arquivo CharForDigit.java usando o seguinte comando:

javac CharForDigit.java

Em seguida, execute o código usando o seguinte comando:

java CharForDigit

Você deverá ver a seguinte saída:

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

Esta saída confirma que o método forDigit() funciona como esperado.

Adicionar Entrada do Usuário

Agora, vamos modificar o código para aceitar a entrada do usuário para o dígito e a base (radix). Adicione o seguinte código após o código inicial:

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

Este código solicita ao usuário o dígito e a base (radix), lê a entrada do console e usa o método forDigit() para obter a representação de caractere do dígito.

Compilar e Executar o Código com Entrada do Usuário

Compile o arquivo CharForDigit.java modificado usando o seguinte comando:

javac CharForDigit.java

Em seguida, execute o código usando o seguinte comando:

java CharForDigit

Você deverá ver o seguinte prompt no console:

Enter digit:

Insira um dígito (por exemplo, 12) e pressione Enter. Você deverá ver o seguinte prompt:

Enter radix:

Insira uma base (radix) (por exemplo, 16) e pressione Enter. Você deverá então ver a seguinte saída:

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

Esta saída confirma que o código modificado funciona como esperado.

Testar para Entrada Inválida

Modifique o código para lidar com entrada inválida do usuário. Adicione o seguinte código após o código de entrada do usuário:

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

Este código captura qualquer InputMismatchException que é lançada pela classe Scanner quando o usuário insere uma entrada que não pode ser analisada como um inteiro.

Compilar e Executar o Código Modificado

Compile o arquivo CharForDigit.java modificado usando o seguinte comando:

javac CharForDigit.java

Em seguida, execute o código usando o seguinte comando:

java CharForDigit

Você deverá ver o seguinte prompt no console:

Enter digit:

Insira uma entrada não numérica (por exemplo, "abc") e pressione Enter. Você deverá ver a seguinte saída:

Invalid input!

Esta saída confirma que o código lida com entrada inválida como esperado.

Testar para Radix Inválido

Modifique o código para verificar se o radix inserido é válido. Adicione o seguinte código após o código de entrada do usuário:

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

Este código verifica se o radix inserido é menor que o radix mínimo ou maior que o radix máximo. Se for, ele imprime uma mensagem e termina o programa.

Compilar e Executar o Código Modificado

Compile o arquivo CharForDigit.java modificado usando o seguinte comando:

javac CharForDigit.java

Em seguida, execute o código usando o seguinte comando:

java CharForDigit

Você deverá ver o seguinte prompt no console:

Enter digit:

Insira um dígito (por exemplo, 6) e pressione Enter. Você deverá ver o seguinte prompt:

Enter radix:

Insira um radix menor que 2 ou maior que 36 (por exemplo, 1 ou 100) e pressione Enter. Você deverá ver a seguinte saída:

Invalid radix!

Esta saída confirma que o código lida com radix inválido como esperado.

Resumo

Neste laboratório, você aprendeu como usar o método forDigit() da classe Character para obter a representação de caractere de um dígito em um radix especificado. Você também aprendeu como lidar com a entrada do usuário e verificar a validade da entrada.