El método de división Java String se utiliza para dividir una cadena en sus subcadenas según el delimitador o la expresión regular especificados.

Por ejemplo:

String: [email protected]
Regular Expression: @ 
Output : {"chaitanya", "singh"}

Método Java String Split

Tenemos dos variaciones del método split () en la clase String.

1. String[] split(String regex): Devuelve una matriz de cadenas después de dividir una cadena de entrada por la expresión regular delimitante.

2. String[] split(String regex, int limit): Este método de división de cadenas de Java se utiliza cuando queremos que las subcadenas estén delimitadas. La única diferencia entre este método y el método anterior es que limita el número de cadenas devueltas después de la división. Por ejemplo split("anydelimiter", 3) devolvería la matriz de solo 3 cadenas incluso si el delimitador está presente en la cadena más de 3 veces.

Si el el límite es negativo entonces la matriz devuelta tendría tantas subcadenas como sea posible, sin embargo, cuando el el límite es cero entonces la matriz devuelta tendría todas las subcadenas excluyendo las cadenas vacías finales.

Lanzamiento PatternSyntaxException si la sintaxis de la expresión regular especificada no es válida.

Ejemplo de división de cadenas de Java

public class SplitExample{
   public static void main(String args[]){
	// This is out input String
	String str = new String("28/12/2013");
	       
	System.out.println("split(String regex):");
	/* Here we are using first variation of java string split method
	 * which splits the string into substring based on the regular
	 * expression, there is no limit on the substrings
	 */
	String array1[]= str.split("/");
	for (String temp: array1){
	      System.out.println(temp);
	}
	       
	/* Using second variation of split method here. Since the limit is passed 
	 * as 2. This method would only produce two substrings. 
	 */
	System.out.println("split(String regex, int limit) with limit=2:");
	String array2[]= str.split("/", 2);
	for (String temp: array2){
	      System.out.println(temp);
	}
	       
	System.out.println("split(String regex, int limit) with limit=0:");
	String array3[]= str.split("/", 0);
	for (String temp: array3){
	      System.out.println(temp);
	}
	       
	/* When we pass limit as negative. The split method works same as the first variation
	 * because negative limit says that the method returns substrings with no limit.
	 */
	System.out.println("split(String regex, int limit) with limit=-5:");
	String array4[]= str.split("/", -5);
	for (String temp: array4){
	      System.out.println(temp);
	}
   }
}

Producción:

split(String regex):
28
12
2013
split(String regex, int limit) with limit=2:
28
12/2013
split(String regex, int limit) with limit=0:
28
12
2013
split(String regex, int limit) with limit=-5:
28
12
2013

Diferencia entre límite cero y negativo en el método de división de cadenas de Java

En el ejemplo anterior, split (“/”, 0) y split (“/”, – 5) devolvieron el mismo valor, sin embargo, en algunos casos, el resultado sería diferente. Veamos la diferencia entre estos dos con la ayuda de un ejemplo:

String s="bbaaccaa";
String arr1[]= s.split("a", -1);
String arr2[]= s.split("a", 0);

En este caso, arr1 tendría {“bb”, “”, “cc”, “”, “”} Sin embargo, arr2 tendría {“bb”, “,” cc “} porque el límite cero excluye la prueba de cadenas vacías.

leer  Ejemplo de método Java String compareToIgnoreCase ()

Veamos el programa completo.

public class JavaExample{
   public static void main(String args[]){
	// This is out input String
	String s = new String("bbaaccaa");

	//Splitting with limit as 0
	String arr2[]= s.split("a", 0);
	System.out.println("Zero Limit split:");
	for (String str2: arr2){
	   System.out.println(str2);
	}

	//Splitting with negative limit
	String arr1[]= s.split("a", -1);
	System.out.println("Negative Limit split:");
	for (String str: arr1){
	   System.out.println(str);
	}

       System.out.println("End of program");
   }
}

Producción:
División de cadenas de Java

División de cadenas de Java con múltiples delimitadores (caracteres especiales)

Veamos cómo podemos pasar múltiples delimitadores mientras usamos el método split (). En este ejemplo, dividimos la cadena de entrada en función de varios caracteres especiales.

public class JavaExample{
   public static void main(String args[]){
	String s = " ,ab;gh,bc;pq#kk$bb";
	String[] str = s.split("[,;#$]");
		
	//Total how many substrings? The array length
	System.out.println("Number of substrings: "+str.length);
		
	for (int i=0; i < str.length; i++) {
		System.out.println("Str["+i+"]:"+str[i]);
	}
   }
}

Producción:
La cadena de Java divide varios caracteres, divide varios caracteres especiales

Ejercitemos algunos otros ejemplos:

Ejemplo: palabra como expresión regular en el método de subdivisión de cadenas de Java

public class SplitExample1 { 
    public static void main(String args[]) 
    { 
        String str = "helloxyzhixyzbye"; 
        String[] arr = str.split("xyz"); 
  
        for (String s : arr) 
            System.out.println(s); 
    } 
}

Producción:

hello
hi
bye

Ejemplo: dividir la cadena en función de espacios

public class SplitExample2 { 
    public static void main(String args[]) 
    { 
        String str = "My name is Chaitanya";
        //regular expression is a whitespace here 
        String[] arr = str.split(" "); 
  
        for (String s : arr) 
            System.out.println(s); 
    } 
}

Producción:

My
name
is
Chaitanya

Por avivcas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *