O método string split() em Java é utilizado para dividir strings em di­fe­ren­tes partes. Para isso, recorre-se a um parâmetro que funciona como separador. Também é possível utilizar um parâmetro para regular o número de subs­trings. É im­por­tante con­si­de­rar algumas ca­rac­te­rís­ti­cas especiais ao utilizar o método.

Em que consiste o método Java string split()?

Uma string Java encadeia várias letras, números ou ca­rac­te­res especiais. Ela existe como objeto na classe java.lang e é criada e editada com a classe string. Essa linguagem de pro­gra­ma­ção permite separar as strings em di­fe­ren­tes partes. O método Java string split() é usado se você deseja extrair apenas certas áreas de toda a string ou decompor-la em elementos in­di­vi­du­ais. Vamos mostrar as di­fe­ren­tes opções que esse método oferece.

Se in­cor­po­rar uma string split() em Java, ela retornará uma matriz de várias strings. Isso se torna o valor de retorno.

Sintaxe e fun­ci­o­na­mento do método Java string split()

A sintaxe do método string split() do Java é muito simples, mas pode ser ampliada com pa­râ­me­tros opcionais. A versão principal é a seguinte:

String[] split(String regex)
java

Aqui, observa-se que o Java retorna um resultado na forma de uma matriz. String é o objeto string. regex é um parâmetro de entrada usado para indicar onde a string deve ser dividida. Embora não seja obri­ga­tó­rio usar esse parâmetro, é re­co­men­dá­vel utilizá-lo. Com o parâmetro opcional limit, a sintaxe é a seguinte:

String[] split(String regex, int limit)
java

limit indica em quantos com­po­nen­tes a string é dividida. O valor é um número inteiro: se for negativo ou igual a 0, todas as sub­ca­deias serão de­vol­vi­das. Se escolher um valor positivo, apenas o número cor­res­pon­dente de sub­ca­deias será apre­sen­tado.

Exemplo do método separando com espaços

Para entender como funciona o string split() em Java, o melhor é usar um exemplo prático. Criámos uma string com quatro palavras: «Este é um exemplo». Pode dividir esta string usando o método string split(). O mais lógico é separar as palavras entre os de­li­mi­ta­do­res criados pelos espaços entre as palavras. Pode separar a string com o seguinte código:

public class Main {
	public static void main(String[] args) {
		String x = "Esto es un ejemplo";
		String[] output = x.split(" ");
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

Agora será iniciada uma variável de string x. Em seguida, Java aplicará o método string split() a x. O parâmetro regex procura espaços na string e divide-a nesse ponto. O resultado é ar­ma­ze­nado numa matriz chamada «output». Essas sub-strings são enu­me­ra­das com o loop for. Graças ao comando Java System.out.println, obterá o seguinte resultado.

Esto
es
un
ejemplo
java

A vírgula como separador com e sem espaços

Você também pode usar esse método para sub­di­vi­dir listas que foram separadas por vírgulas e ar­ma­ze­na­das como uma string. Para isso, é preciso recorrer a um pequeno truque que dirá como as ins­tru­ções que você fornecer devem ser im­ple­men­ta­das. Imagine uma lista com os dias da semana, cada um separado por uma vírgula. As vírgulas são um bom parâmetro para regex. Se você as usar, o código terá a seguinte aparência:

public class Main {
	public static void main(String[] args) {
		String x = "lunes, martes, miércoles, jueves, viernes, sábado, domingo";
		String[] output = x.split(",");
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

O resultado neste caso não será o ideal:

lunes
 martes
 miércoles
 jueves
 viernes
 sábado
 domingo
java

Assim, obtém-se uma lista clara, mas todos os valores a partir de «terça-feira» têm um espaço no início. Como a divisão é sempre aplicada após a vírgula obri­ga­tó­ria, o string split() em Java inclui esse espaço no início da subcadeia. Para evitar esse problema, basta modificar o método com um espaço adicional como separador. Este seria o código:

public class Main {
	public static void main(String[] args) {
		String x = "lunes, martes, miércoles, jueves, viernes, sábado, domingo";
		String[] output = x.split(", ");
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

Agora parece muito mais or­ga­ni­zado:

lunes
martes
miércoles
jueves
viernes
sábado
domingo
java

Separar cadeias de dígitos

Este método também permite separar longas cadeias de dígitos. Como exemplo, ima­gi­ne­mos uma chave longa dividida por pontos e dois pontos. Se quiser separar os dígitos que vêm depois dos dois pontos, deve usar este código:

public class Main {
	public static void main(String[] args) {
		String x = "194.518.552.1.17:6339";
		String[] output = x.split(":");
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

O programa irá retornar o seguinte:

194.518.552.1.17
6339
java

O método String split() do Java com o parâmetro limit

Como men­ci­o­nado an­te­ri­or­mente, string split() também pode ser combinado com o parâmetro limit. Este restringe o número de com­po­nen­tes criados por string split(). Existem três opções de valores: valor menor que 0, igual a 0 ou maior que 0.

limite menor que 0

Se escolher um valor menor que zero com limit, a expressão regular será aplicada a toda a cadeia de ca­rac­te­res sem res­tri­ções. O conjunto re­sul­tante pode ter qualquer com­pri­mento. O código será o seguinte:

public class Main {
	public static void main(String[] args) {
		String x = "lunes, martes, miércoles, jueves, viernes, sábado, domingo ";
		String[] output = x.split(", ", -3);
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

Após o último conceito, «domingo», há um espaço, pelo que a matriz termina com uma string vazia. O resultado é o seguinte:

lunes
martes
miércoles
jueves
viernes
sábado
domingo
java

limite 0

Se o valor do parâmetro limit for 0, a expressão regular também será utilizada com a maior frequên­cia possível. O com­pri­mento da matriz não é limitado. No entanto, se o último elemento for uma string vazia, a matriz final não o terá em con­si­de­ra­ção.

public class Main {
	public static void main(String[] args) {
		String x = "lunes, martes, miércoles, jueves, viernes, sábado, domingo ";
		String[] output = x.split(", ", 0);
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

O resultado é o mesmo, mas a última string é des­car­tada:

martes
miércoles
jueves
viernes
sábado
domingo
java

limite maior que 0

Se limit tiver um valor maior que 0, ob­vi­a­mente haverá di­fe­ren­ças. Este número de­ter­mi­nará quantas sub­ca­deias o Java retorna. Para o exemplo em questão, o código é o seguinte:

public class Main {
	public static void main(String[] args) {
		String x = "lunes, martes, miércoles, jueves, viernes, sábado, domingo ";
		String[] output = x.split(", ", 3);
		for (String y : output) {
			System.out.println(y);
		}
	}
}
java

Este resultado difere dos dois an­te­ri­o­res à primeira vista:

lunes
martes
miércoles, jueves, viernes, sábado, domingo
java
Ir para o menu principal