Como Verificar se um Caractere é Espaço em Branco em Java

JavaBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se um caractere é um espaço em branco em Java usando o método Character.isWhitespace(). Você explorará como este método identifica vários caracteres de espaço em branco, incluindo espaços, tabulações, novas linhas e retornos de carro.

Através de exercícios práticos, você testará o método com diferentes caracteres, incluindo espaços, tabulações e caracteres que não são espaços em branco, como letras e dígitos, para entender seu comportamento e aplicação prática na programação Java.

Usar o Método Character.isWhitespace()

Nesta etapa, exploraremos como usar o método Character.isWhitespace() em Java. Este método faz parte da classe Character e é usado para determinar se um determinado caractere é um caractere de espaço em branco. Caracteres de espaço em branco incluem espaços, tabulações, novas linhas e retornos de carro.

Compreender como identificar espaços em branco é útil em muitas tarefas de programação, como analisar texto, validar entrada ou formatar saída.

Vamos criar um novo arquivo Java para experimentar este método.

  1. Abra o WebIDE se ele ainda não estiver aberto.

  2. No File Explorer à esquerda, certifique-se de estar no diretório ~/project.

  3. Clique com o botão direito do mouse no espaço vazio dentro do diretório ~/project e selecione "New File".

  4. Nomeie o novo arquivo WhitespaceChecker.java.

  5. Abra o arquivo WhitespaceChecker.java no editor.

  6. Copie e cole o seguinte código Java no editor:

    public class WhitespaceChecker {
        public static void main(String[] args) {
            char space = ' ';
            char tab = '\t';
            char newline = '\n';
            char letter = 'a';
            char digit = '1';
    
            System.out.println("Is '" + space + "' whitespace? " + Character.isWhitespace(space));
            System.out.println("Is '" + tab + "' whitespace? " + Character.isWhitespace(tab));
            System.out.println("Is '" + newline + "' whitespace? " + Character.isWhitespace(newline));
            System.out.println("Is '" + letter + "' whitespace? " + Character.isWhitespace(letter));
            System.out.println("Is '" + digit + "' whitespace? " + Character.isWhitespace(digit));
        }
    }
    

    Vamos analisar as novas partes deste código:

    • char space = ' ';: Isso declara uma variável chamada space do tipo char e atribui a ela o caractere espaço.
    • char tab = '\t';: Isso declara uma variável chamada tab e atribui a ela o caractere tabulação. \t é uma sequência de escape que representa uma tabulação.
    • char newline = '\n';: Isso declara uma variável chamada newline e atribui a ela o caractere nova linha. \n é uma sequência de escape que representa uma nova linha.
    • char letter = 'a';: Isso declara uma variável chamada letter e atribui a ela o caractere 'a'.
    • char digit = '1';: Isso declara uma variável chamada digit e atribui a ela o caractere '1'.
    • Character.isWhitespace(space): É aqui que chamamos o método isWhitespace(). Passamos o caractere space para ele, e ele retornará true se o caractere for um espaço em branco e false caso contrário. Fazemos o mesmo para os outros caracteres.
    • System.out.println(...): Usamos println para imprimir o resultado da chamada do método isWhitespace() junto com uma mensagem descritiva.
  7. Salve o arquivo WhitespaceChecker.java (Ctrl+S ou Cmd+S).

Agora que escrevemos o código, precisamos compilá-lo e executá-lo para ver a saída.

  1. Abra o Terminal na parte inferior do WebIDE. Certifique-se de estar no diretório ~/project.

  2. Compile o programa Java usando o comando javac:

    javac WhitespaceChecker.java
    

    Se não houver erros, este comando criará um arquivo WhitespaceChecker.class no diretório ~/project.

  3. Execute o programa Java compilado usando o comando java:

    java WhitespaceChecker
    

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

    Is ' ' whitespace? true
    Is ' ' whitespace? true
    Is '
    ' whitespace? true
    Is 'a' whitespace? false
    Is '1' whitespace? false
    

    Esta saída mostra que o método isWhitespace() identificou corretamente os caracteres espaço, tabulação e nova linha como espaços em branco, e os caracteres letra e dígito como não espaços em branco.

Você usou com sucesso o método Character.isWhitespace() para verificar diferentes caracteres. Na próxima etapa, testaremos este método com mais exemplos, incluindo diferentes tipos de espaços em branco.

Testar com Espaços e Tabulações

Na etapa anterior, usamos Character.isWhitespace() com um único espaço e um único caractere de tabulação. Nesta etapa, testaremos ainda mais o método com strings contendo múltiplos espaços e tabulações para ver como ele se comporta.

Lembre-se que Character.isWhitespace() funciona em caracteres individuais, não em strings inteiras. Para verificar se uma string contém apenas espaços em branco, ou para processar espaços em branco dentro de uma string, você normalmente iteraria pela string caractere por caractere e aplicaria o método isWhitespace() a cada um.

Vamos modificar nosso arquivo WhitespaceChecker.java para incluir testes com múltiplos espaços e tabulações.

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

  2. Substitua o código existente pelo seguinte código atualizado:

    public class WhitespaceChecker {
        public static void main(String[] args) {
            char space = ' ';
            char tab = '\t';
            char newline = '\n';
            char letter = 'a';
            char digit = '1';
    
            System.out.println("Is '" + space + "' whitespace? " + Character.isWhitespace(space));
            System.out.println("Is '" + tab + "' whitespace? " + Character.isWhitespace(tab));
            System.out.println("Is '" + newline + "' whitespace? " + Character.isWhitespace(newline));
            System.out.println("Is '" + letter + "' whitespace? " + Character.isWhitespace(letter));
            System.out.println("Is '" + digit + "' whitespace? " + Character.isWhitespace(digit));
    
            System.out.println("\nTesting with multiple characters:");
    
            String testString1 = "   "; // Three spaces
            String testString2 = "\t\t"; // Two tabs
            String testString3 = "  \t  "; // Spaces and tabs
            String testString4 = "Hello World"; // Contains space, but also letters
    
            System.out.println("Checking characters in: \"" + testString1 + "\"");
            for (int i = 0; i < testString1.length(); i++) {
                char c = testString1.charAt(i);
                System.out.println("  Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
            }
    
            System.out.println("Checking characters in: \"" + testString2 + "\"");
            for (int i = 0; i < testString2.length(); i++) {
                char c = testString2.charAt(i);
                 System.out.println("  Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
            }
    
            System.out.println("Checking characters in: \"" + testString3 + "\"");
            for (int i = 0; i < testString3.length(); i++) {
                char c = testString3.charAt(i);
                 System.out.println("  Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
            }
    
             System.out.println("Checking characters in: \"" + testString4 + "\"");
            for (int i = 0; i < testString4.length(); i++) {
                char c = testString4.charAt(i);
                 System.out.println("  Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
            }
        }
    }
    

    Aqui está uma análise do novo código:

    • String testString1 = " ";: Criamos uma string com três caracteres de espaço.
    • String testString2 = "\t\t";: Criamos uma string com dois caracteres de tabulação.
    • String testString3 = " \t ";: Criamos uma string com uma mistura de espaços e tabulações.
    • String testString4 = "Hello World";: Criamos uma string com letras e um espaço.
    • for (int i = 0; i < testString1.length(); i++): Este é um loop for que itera por cada caractere da string.
    • char c = testString1.charAt(i);: Dentro do loop, charAt(i) obtém o caractere no índice atual i e o armazena na variável c.
    • System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));: Esta linha imprime se o caractere atual c é um espaço em branco usando Character.isWhitespace(c). A parte (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) é um operador ternário usado para imprimir uma representação visível para caracteres de espaço e tabulação na saída.
  3. Salve o arquivo WhitespaceChecker.java.

Agora, vamos compilar e executar o programa atualizado.

  1. Abra o Terminal na parte inferior do WebIDE. Certifique-se de estar no diretório ~/project.

  2. Compile o programa Java:

    javac WhitespaceChecker.java
    
  3. Execute o programa Java compilado:

    java WhitespaceChecker
    

    Você deve ver uma saída semelhante a esta, incluindo os resultados para cada caractere nas strings de teste:

    Is ' ' whitespace? true
    Is ' ' whitespace? true
    Is '
    ' whitespace? true
    Is 'a' whitespace? false
    Is '1' whitespace? false
    
    Testing with multiple characters:
    Checking characters in: "   "
      Is ' ' whitespace? true
      Is ' ' whitespace? true
      Is ' ' whitespace? true
    Checking characters in: "  "
      Is '\t' whitespace? true
      Is '\t' whitespace? true
    Checking characters in: "     "
      Is ' ' whitespace? true
      Is ' ' whitespace? true
      Is '\t' whitespace? true
      Is ' ' whitespace? true
      Is ' ' whitespace? true
    Checking characters in: "Hello World"
      Is 'H' whitespace? false
      Is 'e' whitespace? false
      Is 'l' whitespace? false
      Is 'l' whitespace? false
      Is 'o' whitespace? false
      Is ' ' whitespace? true
      Is 'W' whitespace? false
      Is 'o' whitespace? false
      Is 'r' whitespace? false
      Is 'l' whitespace? false
      Is 'd' whitespace? false
    

    Esta saída confirma que Character.isWhitespace() identifica corretamente os caracteres de espaço e tabulação individuais dentro de strings, mesmo quando aparecem consecutivamente ou misturados com outros caracteres.

Você testou com sucesso Character.isWhitespace() com strings contendo múltiplos espaços e tabulações iterando pelos caracteres. Na próxima etapa, veremos como o método lida com caracteres que não são espaços em branco.

Lidar com Caracteres Não-Espaços em Branco

Nas etapas anteriores, focamos em identificar caracteres de espaço em branco usando Character.isWhitespace(). Agora, vamos demonstrar explicitamente como o método lida com caracteres que não são considerados espaços em branco. Isso reforçará sua compreensão do que o método faz e não identifica.

Embora já tenhamos incluído alguns caracteres que não são espaços em branco nos exemplos anteriores (como 'a' e '1'), vamos adicionar mais alguns exemplos diversos ao nosso arquivo WhitespaceChecker.java.

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

  2. Adicione as seguintes linhas de código dentro do método main, após as instruções System.out.println existentes, mas antes dos loops que iteram pelas strings. Você pode adicioná-las após a linha System.out.println("Is '" + digit + "' whitespace? " + Character.isWhitespace(digit));.

            char punctuation = '.';
            char symbol = '$';
            char controlChar = '\u0000'; // Null character
    
            System.out.println("Is '" + punctuation + "' whitespace? " + Character.isWhitespace(punctuation));
            System.out.println("Is '" + symbol + "' whitespace? " + Character.isWhitespace(symbol));
            System.out.println("Is U+0000 whitespace? " + Character.isWhitespace(controlChar)); // Printing control chars might not display correctly
    

    Vamos analisar os novos caracteres que adicionamos:

    • char punctuation = '.';: Um sinal de pontuação.
    • char symbol = '$';: Um caractere de símbolo.
    • char controlChar = '\u0000';: Esta é uma sequência de escape Unicode para o caractere nulo, que é um caractere de controle. Character.isWhitespace() também verifica certos caracteres de controle que são considerados espaços em branco pelo padrão Unicode.
  3. Salve o arquivo WhitespaceChecker.java.

Agora, vamos compilar e executar o programa atualizado para ver a saída para esses novos caracteres.

  1. Abra o Terminal na parte inferior do WebIDE. Certifique-se de estar no diretório ~/project.

  2. Compile o programa Java:

    javac WhitespaceChecker.java
    
  3. Execute o programa Java compilado:

    java WhitespaceChecker
    

    Você deve ver uma saída semelhante a esta, incluindo os resultados para os novos caracteres:

    Is ' ' whitespace? true
    Is ' ' whitespace? true
    Is '
    ' whitespace? true
    Is 'a' whitespace? false
    Is '1' whitespace? false
    Is '.' whitespace? false
    Is '$' whitespace? false
    Is U+0000 whitespace? false
    
    Testing with multiple characters:
    Checking characters in: "   "
      Is ' ' whitespace? true
      Is ' ' whitespace? true
      Is ' ' whitespace? true
    Checking characters in: "  "
      Is '\t' whitespace? true
      Is '\t' whitespace? true
    Checking characters in: "     "
      Is ' ' whitespace? true
      Is ' ' whitespace? true
      Is '\t' whitespace? true
      Is ' ' whitespace? true
      Is ' ' whitespace? true
    Checking characters in: "Hello World"
      Is 'H' whitespace? false
      Is 'e' whitespace? false
      Is 'l' whitespace? false
      Is 'l' whitespace? false
      Is 'o' whitespace? false
      Is ' ' whitespace? true
      Is 'W' whitespace? false
      Is 'o' whitespace? false
      Is 'r' whitespace? false
      Is 'l' whitespace? false
      Is 'd' whitespace? false
    

    Como você pode ver na saída, o sinal de pontuação ('.') e o símbolo ('$') são corretamente identificados como não espaços em branco. O caractere nulo (\u0000) também é identificado como não espaço em branco por Character.isWhitespace(). Este método verifica especificamente os caracteres definidos como espaços em branco no padrão Unicode, que inclui espaço, tabulação, nova linha, retorno de carro, alimentação de formulário (\f) e certos outros caracteres de controle e separadores de espaço.

Você agora viu como Character.isWhitespace() se comporta com vários tipos de caracteres, incluindo espaços em branco padrão e caracteres que não são espaços em branco, como pontuação, símbolos e caracteres de controle. Isso completa nossa exploração do método Character.isWhitespace().

Resumo

Neste laboratório, aprendemos como verificar se um caractere é um espaço em branco em Java usando o método Character.isWhitespace(). Exploramos como este método identifica caracteres comuns de espaço em branco, como espaços, tabulações e quebras de linha.

Praticamos o uso do método Character.isWhitespace() criando um programa Java simples que testou vários caracteres, incluindo espaços, tabulações e caracteres que não são espaços em branco, como letras e dígitos, para ver se eles eram classificados como espaços em branco. Este exercício prático demonstrou a aplicação prática do método para identificar e lidar com espaços em branco no código Java.