Em Java, uma string pode ser dividida em várias subs­trings graças ao método Java string split(), que aceita um parâmetro como de­li­mi­ta­dor. Um parâmetro opcional, por sua vez, determina o número de subs­trings re­sul­tan­tes. Existem algumas pe­cu­li­a­ri­da­des im­por­tan­tes ao utilizar esse método.

O que é o método Java string split()?

Uma string em Java concatena vários ca­rac­te­res, dígitos ou ca­rac­te­res especiais. Ela existe como um objeto na classe java.lang e é criada e ma­ni­pu­lada usando a classe String. A linguagem de pro­gra­ma­ção permite dividir essas strings em várias subs­trings. O método Java string split() é usado quando você deseja extrair certas partes de uma string completa ou dividi-la em suas partes in­di­vi­du­ais. Vamos mostrar as di­fe­ren­tes pos­si­bi­li­da­des que este método oferece.

Ao usar o método Java string split(), você recebe um array contendo várias strings como valor de retorno.

Hos­pe­da­gem que se adapta às suas ambições
  • Fique online com 99,99% de tempo de atividade e segurança robusta
  • Aumente o de­sem­pe­nho com um clique à medida que o tráfego cresce
  • Inclui domínio gratuito, SSL, e-mail e suporte 24 horas por dia, 7 dias por semana

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

A sintaxe do método Java string split() é bastante simples, mas pode ser expandida com um parâmetro opcional. Esta é a versão básica:

String[] split(String regex)
java

Aqui, é indicado que o retorno é na forma de um array. String é o objeto String. regex é um parâmetro de entrada que determina onde a string deve ser dividida. Embora você não seja obrigado a usar este parâmetro, recomenda-se sua uti­li­za­ção. Com o parâmetro opcional limit, a sintaxe fica assim:

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

limit es­pe­ci­fica quantas subs­trings devem ser criadas. Seu valor é um inteiro. Se for negativo ou igual a 0, todas as subs­trings serão re­tor­na­das. Se for um valor positivo, apenas aquele número de subs­trings será retornado.

Java string split() com espaço como de­li­mi­ta­dor

A melhor maneira de entender o método Java string split() é ver sua uti­li­za­ção em um exemplo prático. Vamos criar uma string composta por quatro palavras: “Este é um exemplo”. Você pode dividir essa string usando o método. O mais óbvio é dividir ao longo dos espaços entre as palavras. Com o seguinte código, você realiza essa divisão:

public class Main {
	public static void main(String[] args) {
		String x = "Este é um exemplo";
		String[] saída = x.split(" ");
		for (String y : saída) {
			System.out.println(y);
		}
	}
}
java

Aqui iniciamos uma variável do tipo String chamada x. Em seguida, aplicamos o método String.split() em x. O método split() procura espaços na string e a divide nesses pontos. O resultado é ar­ma­ze­nado em um array chamado saída. Com o laço for, esses subs­trings são listados. Uti­li­zando o comando Java System.out.println, você obtém a seguinte saída:

Este
é
um
exemplo
java

Java string split()com vírgula como de­li­mi­ta­dor (com e sem espaços)

Você também pode utilizar o método para dividir listas que foram ar­ma­ze­na­das como strings separadas por vírgulas. Aqui, você precisará usar um pequeno truque para garantir que suas ins­tru­ções sejam exe­cu­ta­das cor­re­ta­mente. Vamos con­si­de­rar uma lista de dias da semana separados por vírgulas. Essas vírgulas são um bom parâmetro para o regex. O código ficaria assim:

public class Main {
	public static void main(String[] args) {
		String x = "Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira, Sábado, Domingo";
		String[] saída = x.split(",");
		for (String y : saída) {
			System.out.println(y);
		}
	}
}
java

A saída, neste caso, pode não ser exa­ta­mente a que você deseja:

Segunda-feira
 Terça-feira
 Quarta-feira
 Quinta-feira
 Sexta-feira
 Sábado
 Domingo
java

Assim, você ainda obterá uma lista or­ga­ni­zada, mas todos os valores a partir de “Terça-feira” terão um espaço em branco in­de­se­jado no início. Como a separação é feita di­re­ta­mente após a vírgula, o método Java string split() inclui esse espaço como a primeira posição na substring. Para contornar esse pequeno problema, basta ajustar o método usando um espaço adicional como de­li­mi­ta­dor. Este é o código:

public class Main {
	public static void main(String[] args) {
		String x = "Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira, Sábado, Domingo";
		String[] saída = x.split(", ");
		for (String y : saída) {
			System.out.println(y);
		}
	}
}
java

Agora a saída será mais or­ga­ni­zada:

Segunda-feira
Terça-feira
Quarta-feira
Quinta-feira
Sexta-feira
Sábado
Domingo
java

Cadeias numéricas separadas

Outra forma de separação é no caso de longas cadeias de números. Como exemplo, vamos con­si­de­rar uma chave longa que está dividida por pontos e dois-pontos. Se você deseja listar se­pa­ra­da­mente os números após o dois-pontos, este é o código adequado:

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

A saída então ficará assim:

194.518.552.1.17
6339
java

Método Java string split() e parâmetro limit

Como men­ci­o­nado, o Java string split() também possui o parâmetro opcional limit. Este parâmetro limita o número de subs­trings que são criadas pelo método. Existem três pos­si­bi­li­da­des para o valor de limit: um valor menor que 0, um valor igual a 0 ou um valor maior que 0.

limit menor que 0

Se você escolher um valor para limit que seja menor que 0, a expressão regular será aplicada à cadeia de ca­rac­te­res inteira sem res­tri­ções. O array re­sul­tante pode ter um com­pri­mento ar­bi­trá­rio. O código exem­pli­fi­ca­tivo seria:

public class Main {
	public static void main(String[] args) {
		String x = "Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira, Sábado, Domingo ";
		String[] saída = x.split(", ", -3);
		for (String y : saída) {
			System.out.println(y);
		}
	}
}
java

Como há um espaço após o último termo “Domingo”, o array termina com uma string vazia. A saída cor­res­pon­dente é:

Segunda-feira
Terça-feira
Quarta-feira
Quinta-feira
Sexta-feira
Sábado
Domingo
java

limit igual a 0

Se você escolher o valor 0 para o parâmetro limit, a expressão regular será aplicada ao máximo possível. A extensão do array também não tem limite. No entanto, se o último elemento for uma string vazia, ele não será incluído no array final.

public class Main {
	public static void main(String[] args) {
		String x = "Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira, Sábado, Domingo ";
		String[] saída = x.split(", ", 0);
		for (String y : saída) {
			System.out.println(y);
		}
	}
}
java

A saída parecerá a mesma, mas a última string será des­car­tada neste caso.

Segunda-feira
Terça-feira
Quarta-feira
Quinta-feira
Sexta-feira
Sábado
Domingo
java

limit maior que 0

Ob­vi­a­mente, há di­fe­ren­ças quando você define um valor maior que 0 para limit. Isso determina quantas subs­trings serão geradas. Para o nosso exemplo, isso se apresenta da seguinte forma:

public class Main {
	public static void main(String[] args) {
		String x = "Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira, Sábado, Domingo ";
		String[] saída = x.split(", ", 3);
		for (String y : saída) {
			System.out.println(y);
		}
	}
}
java

Agora recebemos uma saída que já se di­fe­ren­cia à primeira vista das duas an­te­ri­o­res:

Segunda-feira
Terça-feira
Quarta-feira, Quinta-Feira, Sexta-Feira, Sábado, Domingo
java
Ir para o menu principal