Java Método split() de cadena con ejemplo
⚡ Resumen inteligente
Dividir una cadena en Java Utilizando el método split(), que divide el texto dondequiera que coincida con un delimitador y devuelve los fragmentos como una matriz de cadenas. Un argumento opcional limite la cantidad de fragmentos que se generan, dejando el resto intacto.

¿En qué está la cadena split()? Java?
El split() Este método te permite romper un cadena basado en un específico Java delimitador de cadena. Generalmente, el delimitador es un espacio o una coma (,) donde se desea dividir la cadena.
sintaxis de la función split()
public String[] split(String regex) public String[] split(String regex, int limit)
⚠️ Nota sobre el tipo de retorno: split() devuelve un String[] matriz, ni uno solo String. Asignar el resultado a un simple String La variable no se compila y produce un error de tipos incompatibles, que es el error más frecuente que cometen los principiantes con este método.
Parámetro
- Expresión regular: la expresión regular aplicada al texto o cadena.
- Límite: El número máximo de valores en el array resultante. Si se omite o es cero, se devuelven todas las subcadenas que coinciden con la expresión regular.
Cómo dividir una cadena en Java con delimitador
El siguiente ejemplo muestra cómo dividir una cadena en Java con un delimitador.
Supongamos que tenemos una variable de cadena llamada strMain formado por unas pocas palabras: Alfa, Beta, Gamma, Delta, Sigma — todo separado por una coma (,).
Aquí, si queremos todas las cadenas individuales, el mejor patrón posible sería dividirlas según la coma. Entonces obtendremos cinco cadenas separadas de la siguiente manera:
- Alpha
- Beta
- Gama
- Delta
- Sigma
Usa la cuerda split método en Java contra la cadena que necesita ser dividida, y proporcione el separador como argumento.
En esta Java dividir cadena por caso delimitador, el separador es una coma (,) y el resultado de la Java La operación de dividir cadena por coma le dará como resultado una matriz dividida.
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]);
}
}
}
El bucle en el código simplemente imprime cada Java Dividir la cadena del array después de la función split en Java, Como se muestra abajo.
Rendimiento esperado:
Alpha Beta Delta Gamma Sigma
Ejemplo: Java Método String split() con expresiones regulares y longitud
Considere una situación en la que solo necesita los primeros 'n' elementos después de la función split en Javapero quiero que el resto de la cadena permanezca como está. Una salida similar a esta:
- Alpha
- Beta
- Delta, Gama, Sigma
Esto se puede lograr pasando otro argumento junto con la operación split() en Javay ese será el límite de cadenas necesarias.
Considere el siguiente código del método split en 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]);
}
}
}
Rendimiento esperado:
Alpha Beta Delta, Gamma, Sigma
Tenga en cuenta que un límite de 3 produce exactamente tres elementos: se respetan los dos primeros separadores y todo lo que está después del segundo separador se mantiene junto como el tercer elemento.
Cómo dividir una cuerda en Java por el espacio
Consideremos una situación en la que queremos dividir una cadena por espacios. Aquí tenemos una cadena dividida. Java variable llamado strMain formado por unas pocas palabras: Bienvenidos a 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]);
}
}
}
Rendimiento esperado:
Welcome to Guru99
El patrón \\s coincide con un solo carácter de espacio en blanco. Usar \\s+ en cambio, cuando las palabras pueden estar separadas por más de un espacio, de lo contrario, cada espacio adicional produce un elemento vacío.
Cómo mantener las cadenas vacías al dividir en Java
Un comportamiento de split() sorprende a casi todos la primera vez que lo ven: hilos vacíos que quedan sueltos son desechados silenciosamente. "a,b,," La coma devuelve dos elementos, no cuatro, porque el límite predeterminado de cero descarta todos los campos vacíos al final de la matriz.
Esto es importante siempre que los datos sean posicionales; por ejemplo, una fila CSV donde un valor faltante al final aún ocupa una columna. Perder esos espacios en blanco desplaza todos los índices posteriores.
Pasando un negativas El límite los mantiene:
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
Tres reglas cubren todos los casos. Un límite de cero, que es el valor predeterminado, aplica el patrón tantas veces como sea posible y luego descarta las cadenas vacías finales. positivo El límite aplica el patrón como máximo límite menos una vez, por lo que el elemento final conserva el resto intacto, exactamente como lo demostró el ejemplo anterior con un límite de 3. negativas El límite aplica el patrón tantas veces como sea posible y conserva todos los campos vacíos, incluidos los últimos.
Las cadenas vacías iniciales se comportan de manera diferente de nuevo: división ",a,b" siempre produce un primer elemento vacío independientemente del límite, porque el patrón coincide en la posición cero. Evítelo recortando la entrada o filtrando el resultado. matriz antes de usar.
split() vs StringTokenizer vs Pattern.split(): ¿Cuál usar?
Java Ofrece tres maneras de dividir una cadena en fragmentos. Se diferencian en el tipo de delimitador que aceptan, en el resultado que devuelven y en si el patrón se compila una sola vez o se vuelve a compilar en cada llamada, lo cual es importante cuando la división se realiza dentro de un bucle.
| Aspecto | String.split () | Tokenizador de cadenas | Patrón.split() |
|---|---|---|---|
| Delimitador | Expresión regular | Conjunto de caracteres individuales | Expresión regular |
| Returns | Cuerda[] | Tokens mediante una enumeración | Cuerda[] |
| Patrón compilado | En cada llamada | No es aplicable | Una vez, luego reutilizado |
| Conserva los campos vacíos | Solo con límite negativo | Nunca | Solo con límite negativo |
| Estado | Recomendado | Legado, conservado por compatibilidad | Recomendado en bucles |
Usar String.split() para trabajos puntuales ordinarios, ya que es el más corto de escribir y se lee con claridad. Precompilar con Pattern.compile(",").split(text) al dividir dentro de un bucle, porque la expresión regular se compila una sola vez en lugar de en cada iteración. Evitar StringTokenizer en el código nuevo; se mantiene solo por compatibilidad con versiones anteriores.
Preguntas frecuentes sobre bancarrota Java Errores de split() y cómo solucionarlos
Casi todos los problemas con split() tracEsto se debe a una de dos causas: el argumento es una expresión regular en lugar de una cadena literal, o las reglas de límite descritas anteriormente descartan campos inesperadamente. Cada error a continuación indica su síntoma y su solución.
- Dividir por un punto devuelve una matriz vacía:
"1.2.3".split(".")coincide con cada carácter, porque el punto es un comodín de expresiones regulares. Escápelo comosplit("\\."). - La división en una tubería se comporta de forma extraña: La tubería significa alternancia en expresiones regulares. Escápelo como
split("\\|"). - Error de tipos incompatibles: El resultado fue asignado a un
String. Declara la variable comoString[]. - Elemento inicial vacío inesperado: El delimitador aparece al inicio de la entrada. Recorte la cadena primero.
- Valores faltantes al final: Los campos vacíos finales fueron descartados por el límite predeterminado.
-1como segundo argumento. - NullPointerException:
split()Se llamó a la función en una referencia nula. Compruebe si es nula antes de dividir, ya que el método no puede manejarla.

