Como Verificar se um Caractere é um Dígito em Java

JavaBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como determinar se um caractere é um dígito em Java. Focaremos no uso do método Character.isDigit(), uma ferramenta fundamental para processar texto e identificar caracteres numéricos.

Através de exercícios práticos, você aplicará o método Character.isDigit(), testando-o com vários caracteres numéricos e entenderá como diferenciar dígitos de outros tipos de caracteres, como letras.

Aplicar o Método Character.isDigit()

Nesta etapa, exploraremos como determinar se um caractere é um dígito em Java usando o método Character.isDigit(). Esta é uma operação fundamental quando você precisa processar texto e identificar caracteres numéricos dentro de uma string.

O método Character.isDigit() é um método estático da classe Character. Ele recebe um único caractere como argumento e retorna true se o caractere for um dígito (0 a 9), e false caso contrário.

Vamos criar um programa Java simples para demonstrar como usar este método.

  1. Abra o arquivo HelloJava.java no editor WebIDE, caso ele ainda não esteja aberto.

  2. Substitua todo o conteúdo do arquivo pelo seguinte código:

    public class HelloJava {
        public static void main(String[] args) {
            char char1 = '7';
            char char2 = 'a';
            char char3 = '$';
    
            boolean isDigit1 = Character.isDigit(char1);
            boolean isDigit2 = Character.isDigit(char2);
            boolean isDigit3 = Character.isDigit(char3);
    
            System.out.println("Is '" + char1 + "' a digit? " + isDigit1);
            System.out.println("Is '" + char2 + "' a digit? " + isDigit2);
            System.out.println("Is '" + char3 + "' a digit? " + isDigit3);
        }
    }

    Neste código:

    • Declaramos três variáveis char: char1, char2 e char3, e atribuímos a elas diferentes caracteres.
    • Usamos Character.isDigit() para verificar se cada caractere é um dígito e armazenamos o resultado em variáveis booleanas (isDigit1, isDigit2, isDigit3).
    • Finalmente, imprimimos os resultados no console.
  3. Salve o arquivo (Ctrl+S ou Cmd+S).

  4. Compile o programa executando o seguinte comando no Terminal:

    javac HelloJava.java

    Se não houver erros de compilação, você não verá nenhuma saída.

  5. Execute o programa compilado:

    java HelloJava

    Você deve ver uma saída semelhante a esta:

    Is '7' a digit? true
    Is 'a' a digit? false
    Is '$' a digit? false

    Esta saída confirma que Character.isDigit() identificou corretamente '7' como um dígito e 'a' e '$' como não dígitos.

Testar com Caracteres Numéricos

Na etapa anterior, aprendemos como usar Character.isDigit() para verificar se um único caractere é um dígito. Agora, vamos expandir isso e testá-lo com uma variedade de caracteres numéricos para solidificar nossa compreensão.

Modificaremos nosso programa existente para testar todos os caracteres de dígito de '0' a '9'.

  1. Abra o arquivo HelloJava.java no editor WebIDE.

  2. Substitua o código atual pelo seguinte:

    public class HelloJava {
        public static void main(String[] args) {
            System.out.println("Testing Character.isDigit() with numeric characters:");
    
            for (char c = '0'; c <= '9'; c++) {
                boolean isDigit = Character.isDigit(c);
                System.out.println("Is '" + c + "' a digit? " + isDigit);
            }
        }
    }

    Vamos analisar as mudanças:

    • Adicionamos um loop for que itera pelos caracteres começando de '0' até '9'.
    • Dentro do loop, para cada caractere c, chamamos Character.isDigit(c) e imprimimos o resultado.

    Este loop verificará sistematicamente cada caractere de '0' a '9' e relatará se Character.isDigit() o considera um dígito.

  3. Salve o arquivo (Ctrl+S ou Cmd+S).

  4. Compile o programa modificado no Terminal:

    javac HelloJava.java

    Novamente, nenhuma saída indica compilação bem-sucedida.

  5. Execute o programa:

    java HelloJava

    Você deve ver uma saída semelhante a esta, confirmando que todos os caracteres de '0' a '9' são identificados como dígitos:

    Testing Character.isDigit() with numeric characters:
    Is '0' a digit? true
    Is '1' a digit? true
    Is '2' a digit? true
    Is '3' a digit? true
    Is '4' a digit? true
    Is '5' a digit? true
    Is '6' a digit? true
    Is '7' a digit? true
    Is '8' a digit? true
    Is '9' a digit? true

    Esta etapa demonstra como você pode usar um loop para testar o método Character.isDigit() com múltiplas entradas, o que é uma prática comum ao verificar o comportamento de um método.

Diferenciar Dígitos de Letras

Nas etapas anteriores, focamos na identificação de dígitos. Agora, vamos expandir nosso programa para diferenciar entre dígitos e letras. A classe Character do Java também fornece métodos como Character.isLetter() e Character.isLetterOrDigit() que são úteis para este propósito.

  • Character.isLetter(char ch): Retorna true se o caractere for uma letra, false caso contrário.
  • Character.isLetterOrDigit(char ch): Retorna true se o caractere for uma letra ou um dígito, false caso contrário.

Modificaremos nosso programa para testar esses métodos juntamente com Character.isDigit().

  1. Abra o arquivo HelloJava.java no editor WebIDE.

  2. Substitua o código atual pelo seguinte:

    public class HelloJava {
        public static void main(String[] args) {
            char char1 = '5';
            char char2 = 'B';
            char char3 = '#';
            char char4 = 'k';
    
            System.out.println("Testing character types:");
    
            System.out.println("Character: '" + char1 + "'");
            System.out.println("Is digit? " + Character.isDigit(char1));
            System.out.println("Is letter? " + Character.isLetter(char1));
            System.out.println("Is letter or digit? " + Character.isLetterOrDigit(char1));
            System.out.println("---");
    
            System.out.println("Character: '" + char2 + "'");
            System.out.println("Is digit? " + Character.isDigit(char2));
            System.out.println("Is letter? " + Character.isLetter(char2));
            System.out.println("Is letter or digit? " + Character.isLetterOrDigit(char2));
            System.out.println("---");
    
            System.out.println("Character: '" + char3 + "'");
            System.out.println("Is digit? " + Character.isDigit(char3));
            System.out.println("Is letter? " + Character.isLetter(char3));
            System.out.println("Is letter or digit? " + Character.isLetterOrDigit(char3));
            System.out.println("---");
    
            System.out.println("Character: '" + char4 + "'");
            System.out.println("Is digit? " + Character.isDigit(char4));
            System.out.println("Is letter? " + Character.isLetter(char4));
            System.out.println("Is letter or digit? " + Character.isLetterOrDigit(char4));
        }
    }

    Neste código atualizado, testamos quatro caracteres diferentes: um dígito ('5'), uma letra maiúscula ('B'), um símbolo ('#') e uma letra minúscula ('k'). Para cada caractere, verificamos se é um dígito, uma letra ou uma letra ou dígito, e imprimimos os resultados.

  3. Salve o arquivo (Ctrl+S ou Cmd+S).

  4. Compile o programa no Terminal:

    javac HelloJava.java
  5. Execute o programa:

    java HelloJava

    Você deve ver uma saída semelhante a esta, mostrando como os diferentes métodos classificam cada caractere:

    Testing character types:
    Character: '5'
    Is digit? true
    Is letter? false
    Is letter or digit? true
    ---
    Character: 'B'
    Is digit? false
    Is letter? true
    Is letter or digit? true
    ---
    Character: '#'
    Is digit? false
    Is letter? false
    Is letter or digit? false
    ---
    Character: 'k'
    Is digit? false
    Is letter? true
    Is letter or digit? true

    Esta etapa demonstra como usar Character.isLetter() e Character.isLetterOrDigit() para categorizar caracteres, o que é útil em várias tarefas de processamento de texto.

Resumo

Neste laboratório, aprendemos como verificar se um caractere é um dígito em Java usando o método estático Character.isDigit(). Este método recebe um único caractere como entrada e retorna true se for um dígito (0-9) e false caso contrário. Demonstramos seu uso escrevendo um programa Java simples que testou caracteres numéricos, letras e símbolos, e imprimiu o resultado booleano para cada um. Essa habilidade fundamental é essencial para processar texto e identificar componentes numéricos dentro de strings.