Como Dividir uma string em Java

Hassan Saeed 11 dezembro 2023
Como Dividir uma string em Java

Este tutorial discute como dividir uma string em Java.

String em Java é um dos tipos de dados não-primitivos e é utilizado para armazenar uma seqüência de caracteres. Podemos declarar uma variável de string simplesmente da seguinte forma:

String string = "I am a string";
String string1 = "I am another string";

Podemos precisar executar várias tarefas de processamento de string, dependendo do que estamos tentando alcançar. Vamos considerar o caso em que temos uma string que representa dados em formato CSV - todos separados por uma vírgula.

String data = "Apple,Banana,Orange,Peach";

Queremos todas as strings individuais a partir disto; portanto, precisamos dividir a string com base na vírgula para separar os dados para obter a seguinte saída.

> Apple
> Banana
> Orange
> Peach

Java Strings têm uma função de divisão por padrão String#split() que toma uma expressão regular como entrada e retorna uma série de strings resultantes após a divisão na inteiro dada.

O exemplo abaixo ilustra como utilizar este método para dividir uma determinada string em Java.

public class Main {
  public static void main(String args[]) {
    String data = "Apple,Banana,Orange,Peach";
    String[] splitted = data.split(",");
    for (int i = 0; i < splitted.length; i++) {
      System.out.println(splitted[i]);
    }
  }
}

O código acima mostra o seguinte.

Apple
Banana
Orange
Peach

Vamos tentar este método para dividir uma string em um parâmetro diferente.

Dividir em um ponto

Desta vez, temos um string como este: "One.Two.Three.Four". Vamos utilizar novamente o mesmo método para dividi-lo.

public class Main {
  public static void main(String args[]) {
    String data = "One.Two.Three.Four";
    String[] splitted = data.split(".");
    for (int i = 0; i < splitted.length; i++) {
      System.out.println(splitted[i]);
    }
  }
}

O código acima não vai dar em nada! Lembre-se, mencionamos que a função split toma um padrão de expressão regular como entrada. Portanto, precisamos tomar medidas extras quando quisermos dividir em alguns caracteres especiais.

Ali são 12 caracteres com significados especiais:

  • a contrabarra \
  • o carpete ^
  • o sinal de dólar $
  • o período ou ponto .
  • a barra vertical ou o símbolo do tubo |
  • o ponto de interrogação ?
  • o asterisco ou estrela *
  • o sinal de mais +
  • o parêntese de abertura (
  • o parêntese de fechamento )
  • e o colchete de abertura [
  • a bracelete de abertura encaracolada {

Estes caracteres especiais são freqüentemente chamados de metacharacters.

Se quisermos dividir nossa string em qualquer um dos caracteres acima, podemos utilizar barra invertida \ para escapar desses caracteres especiais, então utilize data.split('\\.') em vez de data.split('.').

public class Main {
  public static void main(String args[]) {
    String data = "One.Two.Three.Four";
    String[] splitted = data.split("\\.");
    for (int i = 0; i < splitted.length; i++) {
      System.out.println(splitted[i]);
    }
  }
}

O código acima agora sai corretamente:

One
Two
Three
Four

Vamos tentar mais um exemplo.

Dividir em uma string

Desta vez, temos um string como este: "OneFruitTwoFruitThreeFruit". Vamos utilizar novamente o mesmo método para dividi-lo com base na string Fruit.

public class Main {
  public static void main(String args[]) {
    String data = "OneFruitTwoFruitThreeFruit";
    String[] splitted = data.split("Fruit");
    for (int i = 0; i < splitted.length; i++) {
      System.out.println(splitted[i]);
    }
  }
}

O código acima sai:

One
Two
Three

Agora sabemos como dividir uma string em Java em qualquer parâmetro dado.

Artigo relacionado - Java String