Java Método split() da string com exemplo
⚡ Resumo Inteligente
Dividir uma string em Java Utilizando o método `split()`, o texto é dividido em partes sempre que um delimitador for encontrado e os fragmentos são retornados como um array de strings. Um argumento opcional `limit` define o número máximo de fragmentos produzidos, mantendo o restante intacto.

O que é a string split() em Java?
O split() esse método permite que você quebre um corda com base em um específico Java Delimitador de string. Normalmente, o delimitador é um espaço ou uma vírgula (,) que indica onde você deseja quebrar a string.
Sintaxe da função split()
public String[] split(String regex) public String[] split(String regex, int limit)
⚠️ Observação sobre o tipo de retorno: split() retorna um String[] ordem, nem um único StringAtribuindo o resultado a um objeto simples. String A variável não compila devido a um erro de tipos incompatíveis, que é o erro mais frequente cometido por iniciantes com esse método.
Parâmetro
- Expressão regular: A expressão regular aplicada ao texto ou à cadeia de caracteres.
- Limite: O número máximo de valores na matriz resultante. Se for omitido ou zero, todas as substrings que correspondem à expressão regular serão retornadas.
Como dividir uma string em Java com delimitador
O exemplo abaixo mostra como dividir uma string em Java com um delimitador.
Suponha que temos uma variável string chamada strMain formado por algumas palavras — Alfa, Beta, Gama, Delta, Sigma — todos separados por vírgula (,).
Aqui, se quisermos todas as strings individuais, o melhor padrão possível seria dividi-las com base na vírgula. Portanto, obteremos cinco strings separadas da seguinte forma:
- alfa
- beta
- Gama
- Delta
- Sigma
Use a corda divisão método em Java contra a string que precisa ser dividida e forneça o separador como argumento.
Neste curso Java dividir a string por maiúsculas e minúsculas, o separador é uma vírgula (,) e o resultado do Java dividir string por operação de vírgula resultará em uma divisão de array.
class StrSplit{
public static void main(String []args){
String strMain = "Alpha, Beta, Delta, Gamma, Sigma";
String[] arrSplit = strMain.split(", ");
for (int i=0; i < arrSplit.length; i++)
{
System.out.println(arrSplit[i]);
}
}
}
O loop no código apenas imprime cada Java dividir a string da matriz após a função split em Java, como mostrado abaixo.
Resultado esperado:
Alpha Beta Delta Gamma Sigma
Exemplo: Java Método String split() com regex e comprimento
Considere uma situação em que você precisa apenas dos primeiros 'n' elementos após a função de divisão em Javamas quero que o restante da string permaneça como está. Uma saída semelhante a esta:
- alfa
- beta
- Delta, Gama, Sigma
Isso pode ser conseguido passando outro argumento junto com a operação split() em JavaE esse será o limite de strings necessárias.
Considere o seguinte código do método split em Java:
class StrSplit2{
public static void main(String []args){
String strMain = "Alpha, Beta, Delta, Gamma, Sigma";
String[] arrSplit_2 = strMain.split(", ", 3);
for (int i=0; i < arrSplit_2.length; i++){
System.out.println(arrSplit_2[i]);
}
}
}
Resultado esperado:
Alpha Beta Delta, Gamma, Sigma
Note que um limite de 3 produz exatamente três elementos: os dois primeiros separadores são respeitados e tudo o que vem depois do segundo separador é mantido junto como o terceiro elemento.
Como dividir uma string em Java por Espaço
Considere uma situação em que você deseja dividir uma string por espaços. Aqui temos uma string dividida. Java variável nomeado strMain formado por poucas palavras: Bem-vindo à Guru99.
public class StrSplit3{
public static void main(String args[]){
String strMain = "Welcome to Guru99";
String[] arrSplit_3 = strMain.split("\\s");
for (int i=0; i < arrSplit_3.length; i++){
System.out.println(arrSplit_3[i]);
}
}
}
Resultado esperado:
Welcome to Guru99
O padrão \\s corresponde a um único caractere de espaço em branco. Use \\s+ em vez disso, quando as palavras podem ser separadas por mais de um espaço, caso contrário, cada espaço extra produz um elemento vazio.
Como manter strings vazias ao dividir em Java
Um comportamento de split() Surpreende quase todos no primeiro contato: as cordas vazias que se arrastam são silenciosamente descartadas. Divisão "a,b,," A vírgula retorna dois elementos, não quatro, porque o limite padrão de zero descarta todos os campos vazios no final da matriz.
Isso é importante sempre que os dados são posicionais — uma linha CSV, por exemplo, onde um valor ausente no final ainda ocupa uma coluna. A perda desses valores em branco altera todos os índices subsequentes.
Passando por negativo O limite os mantém:
String row = "Alpha,Beta,,"; // Default: trailing empty fields removed -> length 2 String[] a = row.split(","); System.out.println(a.length); // prints 2 // Negative limit: every field preserved -> length 4 String[] b = row.split(",", -1); System.out.println(b.length); // prints 4
Três regras abrangem todos os casos. Um limite de zero, que é o padrão, aplica o padrão o máximo de vezes possível e depois descarta as strings vazias finais. positivo O limite aplica o padrão no máximo limite menos um vezes, portanto o elemento final contém o resto da divisão, exatamente como demonstrado no exemplo anterior com limite de 3. negativo O comando `limit` aplica o padrão o máximo de vezes possível e mantém todos os campos vazios, incluindo os campos finais.
As strings vazias iniciais se comportam de maneira diferente: dividindo-se. ",a,b" O resultado sempre será um primeiro elemento vazio, independentemente do limite, porque o padrão corresponde na posição zero. Evite isso truncando a entrada ou filtrando o resultado. ordem antes de usar.
split() vs StringTokenizer vs Pattern.split(): Qual usar?
Java Oferece três maneiras de dividir uma string em partes. Elas diferem no tipo de delimitador que cada uma aceita, no que retornam e se o padrão é compilado uma vez ou recompilado a cada chamada, o que é importante quando a divisão ocorre dentro de um loop.
| Aspecto | String.split() | StringTokenizer | Padrão.split() |
|---|---|---|---|
| Delimitador | Expressão regular | Conjunto de caracteres individuais | Expressão regular |
| Returns | Corda[] | Tokens por meio de uma enumeração | Corda[] |
| Padrão compilado | Em todas as chamadas | Não aplicável | Uma vez, depois reutilizado. |
| Mantém campos vazios | Somente com um limite negativo | Nunca | Somente com um limite negativo |
| Status | Recomendado até | Legado, mantido para compatibilidade | Recomendado em loops |
Uso String.split() Para trabalhos pontuais comuns, já que é o mais curto de escrever e tem leitura clara. Pré-compile com Pattern.compile(",").split(text) Ao dividir dentro de um loop, a expressão regular é compilada apenas uma vez, em vez de a cada iteração. Evite. StringTokenizer no novo código; permanece apenas para fins de compatibilidade com versões anteriores.
comum Java Erros na função split() e como corrigi-los
Quase todos os problemas com split() tracIsso se deve a uma das duas causas: o argumento é uma expressão regular em vez de uma string literal, ou as regras de limite descritas acima estão descartando campos inesperadamente. Cada erro abaixo nomeia seu sintoma e sua solução.
- A divisão por ponto retorna um array vazio:
"1.2.3".split(".")corresponde a todos os caracteres, porque o ponto é um caractere curinga de expressão regular. Escape-o comosplit("\\."). - A rachadura em um cano se comporta de maneira estranha: O caractere pipe significa alternância em expressões regulares. Escape-o como
split("\\|"). - Erro de tipos incompatíveis: o resultado foi atribuído a um
StringDeclare a variável comoString[]. - Elemento inicial vazio inesperado: O delimitador aparece no início da entrada. Primeiro, remova os espaços em branco da string.
- Valores ausentes no final: Os campos vazios à direita foram descartados pelo limite padrão. Passar
-1como o segundo argumento. - NullPointerException:
split()foi chamada em uma referência nula. Verifique se há um valor nulo antes de dividir o método, pois ele não pode ser tratado dessa forma.

