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.