En este tutorial explicamos el comando Split en Kotlin. Además mostramos algunos ejemplos de su uso. Se muestra como usar uno o más delimitadores y como restringir el tamaño máximo del arreglo resultante.
Split en Kotlin un delimitador.
Split se usa para dividir un string en varios, en base al delimitador dado. El resultado es un arreglo con la cantidad deelementos que separó el Split.
Si el delimitador no esta en la vairable String, regresará solo un elemento con todo el texto.
val aa = "Hola **mundo** aqui estoy" val res = aa.split("**") // res es igual a ["Hola ", "mundo", " aqui estoy"] println(res[1]) //Imprime: mundo
Split con más de un delimitador.
Es posible usar más de un delimitador en el Split, solo debemos con separar con comas los delimitadores. El resultado es un arreglo con la cantidad de elementos que los delimitadores creen.
val aa = "Hola--mundo**aqui--estoy" val res = aa.split("**","--") // res es igual a ["Hola", "mundo", "aquí", "estoy"] println(res[2]) //Imprime: aqui
Split usando Regex en Kotlin
Otra manera de usar el comando Split, es con usando Regex. Tambien es posible agregar multiples deliminadores separándolos con “|”. Pero en este caso no aceptara algunos caracteres especiales como el asterisco “*” y los considerados caracteres especiales (@, #, ~, ¬, *, etc.).
Podemos usar los caracteres especiales si los encerramos dentro de corchetes por ejemplo: [*].
val aa = "Hola--mundo**aqui--estoy" val res = aa.split(Regex("--")) // res es igual a ["Hola", "mundo**aquí", "estoy"] println(res[0]) //Imprime: Hola
Con dos delimitadores:
val aa = "Hola--mundo**aqui--estoy" val res = aa.split(Regex("a|--")) // res es igual a ["Hol", , "mundo**", "quí", "estoy"] println(res[4]) //Imprime: estoy
Con dos delimitadores pero usando un carácter especial:
val aa = "Hola--mundo**aqui--estoy" val res = aa.split(Regex("[*][*]|--")) // res es igual a ["Hola", "mundo", "aquí", "estoy"] println(res[0]) //Imprime: Hola
Split limitando tamaño del arreglo resultante.
Podemos limitar la cantidad máxima de elementos que queremos regrese el Split.
Podemos limitar a 5 elementos el arreglo, si Split regresa más de 5 elementos, regresará los primeros 4 separando con el delimitador y el quinto será el resto del enunciado.
val aa = "Hola--mundo--aqui--estoy" val res = aa.split(Regex("--"), 2) // res es igual a ["Hola", "mundo--aquí--estoy"] println(res[1]) //Imprime: mundo--aquí--estoy
Vemos como se limita 2 dos valores el arreglo resultante, aunque existan más delimitadores en la sentencia.
Split indicando la cantidad de caracteres en cada sepacación.
Esto se hace con la función Chunked.
Tiene un solo parámetro, que es la cantidad de caracteres que se agrupan para hacer el Split. Cada elemento contendrá esta cantidad de caracteres.
Para más tutoriales ve a la sección de Kotlin.
Algunos temas que pueden ser de su interés: