HOWTO · Java

Apare uma string em Java

Ele ensina como cortar uma string em Java

Neste artigo, veremos como cortar uma string com espaços em branco nos pontos inicial ou final.

Apare uma string usando o método trim() em Java

A maneira recomendada de aparar é usar o método trim() se quisermos aparar espaços à esquerda e à direita de uma string de ambos os lados. trim() remove os espaços e retorna uma string sem os espaços à direita.

Abaixo, pegamos uma string stringToTrim que tem uma string com espaços nos pontos inicial e final. Para verificar se os espaços foram eliminados, imprimimos a string antes e depois de ser aparada. Os sinais de mais (+) mostram onde estão os espaços em branco na string.

Quando chamamos stringToTrim.trim(), notamos que os espaços foram removidos.

public class TrimString {
  public static void main(String[] args) {
    String stringToTrim = "   This is just an example  ";

    System.out.println("Before trimming +++" + stringToTrim + "+++");

    stringToTrim = stringToTrim.trim();
    System.out.println("After trimming +++" + stringToTrim + "+++");
  }
}

Produção:

Before trimming +++   This is just an example  +++
After trimming +++This is just an example+++

Apare uma string da esquerda e da direita separadamente usando Character.isWhiteSpace e while

Podemos cortar uma corda de apenas um único lado, seja do lado esquerdo ou direito. Aqui vemos dois exemplos: um que apara do lado esquerdo e outro que remove apenas espaços do lado direito.

No código a seguir, pegamos uma String stringToTrim com espaços em ambas as extremidades. Pegamos uma variável int i e a inicializamos com 0. Em seguida, executamos um loop while que é executado até que a variável i seja menor que o comprimento de stringToTrim e também verificamos se há caracteres de espaço em branco usando Character.isWhitespace()e dentro do método, passamos cada caractere um por um usando o valor i. Ambas as condições devem ser atendidas e, se forem verdadeiras, o valor de i aumenta em um.

Agora chamamos substring() para cortar os caracteres de espaço em branco. substring() começa do lado esquerdo da string, então ele apara o lado esquerdo da string e retorna a string sem espaços à esquerda.

public class TrimString {
  public static void main(String[] args) {
    String stringToTrim = "   This is just an example  ";

    int i = 0;
    while (i < stringToTrim.length() && Character.isWhitespace(stringToTrim.charAt(i))) {
      i++;
    }
    String leftTrim = stringToTrim.substring(i);

    System.out.println("Before trimming +++" + stringToTrim + "+++");

    System.out.println("After trimming +++" + leftTrim + "+++");
  }
}

Produção:

Before trimming +++   This is just an example  +++
After trimming +++This is just an example  +++

Neste exemplo, pegamos a mesma string, mas em vez de inicializar i com 0, inicializamos com stringToTrim().length - 1 e, em seguida, em while, verificamos se i é maior que ou igual a 0. O método para verificar os espaços em branco é o mesmo. Agora, quando as condições se encontram, diminuímos a variável i em um.

Como a substring() começa do lado esquerdo da string, passamos o ponto inicial como 0, e o segundo argumento é o valor que começa da direita i+1 que elimina todos os espaços em branco da extremidade direita.

public class TrimString {
  public static void main(String[] args) {
    String stringToTrim = "   This is just an example  ";

    int i = stringToTrim.length() - 1;
    while (i >= 0 && Character.isWhitespace(stringToTrim.charAt(i))) {
      i--;
    }
    String rightTrim = stringToTrim.substring(0, i + 1);

    System.out.println("Before trimming +++" + stringToTrim + "+++");

    System.out.println("After trimming +++" + rightTrim + "+++");
  }
}

Produção:

Before trimming +++   This is just an example  +++
After trimming +++   This is just an example+++

Corte uma string da esquerda e da direita separadamente usando o Apache Commons

Para este exemplo, usamos uma biblioteca de terceiros chamada Apache Commons. Para incluir a biblioteca em nosso projeto, usamos a seguinte dependência.

 <dependency>
  	<groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
 </dependency>

Para cortar a string stringToTrim do lado esquerdo, usamos StringUtils.stringStart() e passamos a string para cortar e o caractere para cortar null que é tratado como espaço em branco. Usamos StringUtils.stripEnd() para cortar do lado direito e seguir o mesmo processo.

import org.apache.commons.lang3.StringUtils;

public class TrimString {
  public static void main(String[] args) {
    String stringToTrim = "   This is just an example  ";

    String leftTrim = StringUtils.stripStart(stringToTrim, null);
    String rightTrim = StringUtils.stripEnd(stringToTrim, null);

    System.out.println("Before trimming +++" + stringToTrim + "+++");

    System.out.println("After left trimming +++" + leftTrim + "+++");

    System.out.println("After right trimming +++" + rightTrim + "+++");
  }
}

Produção:

Before trimming +++   This is just an example  +++
After left trimming +++This is just an example  +++
After right trimming +++   This is just an example+++