Dividir una cadena en una matriz en Kotlin
- Crear un proyecto de Kotlin
- Leer texto de un archivo en Kotlin
-
Use el método
split()
y el constructorArray()
para dividir una cadena en una matriz en Kotlin -
Use los métodos
split()
ytoTypedArray()
para dividir una cadena en una matriz en Kotlin - Elimine los espacios en blanco iniciales y finales después de dividir una cadena en una matriz en Kotlin
- Conclusión
Una serie de secuencias de caracteres siempre forman una cadena, y podemos recuperar cada una de las secuencias de caracteres cuando sea necesario. Por ejemplo, en una aplicación del mundo real, los usuarios suelen utilizar una secuencia de caracteres para buscar un servicio o producto en particular en la aplicación.
No solemos utilizar toda la secuencia de caracteres para realizar una búsqueda. Por lo general, recuperamos palabras clave del término de búsqueda y las usamos para realizar la búsqueda.
Este tutorial mostrará cómo dividir una cadena en una matriz de cadenas en Kotlin. Puede usar esta técnica para buscar en una aplicación, como se mencionó anteriormente, recuperando las palabras clave de la matriz de cadenas.
Crear un proyecto de Kotlin
Abra IntelliJ IDEA y seleccione Archivo > Nuevo > Proyecto
. En la ventana que se abre, ingrese el nombre del proyecto como “cadena dividida”, seleccione Kotlin
en la sección Idioma y seleccione IntelliJ
en la sección Sistema de compilación.
Finalmente, presione el botón Crear
para generar el proyecto.
Una vez generado el proyecto, cree un archivo llamado data.txt
en la carpeta src
y pegue este texto en el archivo.
Your, service, provider, is, wishing, you, a, good, day
Este texto contiene una sola línea de una cadena, con cada cadena separada de la otra mediante una coma. Usaremos este archivo para leer la cadena en nuestra aplicación.
Leer texto de un archivo en Kotlin
Cree un segundo archivo llamado Main.kt
en la carpeta src/main/kotlin
y copie y pegue el siguiente código en el archivo.
import java.io.File
private val fileData = File("src/data.txt");
fun readFileData(): String {
return fileData.bufferedReader()
.readLine();
}
fun main(){
println(readFileData());
}
En este código, hemos creado un método llamado readFileData()
que usa un BufferedReader
para leer la línea que agregamos en el archivo data.txt
usando el método readLine()
.
El BufferedReader
proporciona una forma eficiente de leer datos de un archivo porque los datos se leen en un búfer en lugar de leerlos directamente desde el archivo. Si necesitamos estos datos nuevamente, los datos se obtendrán del búfer.
El método readLine()
lee una sola línea de texto si existe; de lo contrario, el método devuelve nulo. El final de una línea se identifica con un avance de línea \n
, un retorno de carro \r
o EOF
, que significa el final del archivo.
Ejecute este código y observe que nuestro archivo se lee con éxito. El contenido se registrará en la consola, como se muestra a continuación.
Your, service, provider, is, wishing, you, a, good, day
Use el método split()
y el constructor Array()
para dividir una cadena en una matriz en Kotlin
Comente el método main()
en el ejemplo anterior y copie y pegue el siguiente código en el archivo Main.kt
después del método readFileData()
.
fun usingSplitAndArray(): Array<String> {
val stringData: List<String> = readFileData()
.split(",");
return Array(stringData.size) { index ->
stringData[index]
}
}
fun main(){
println(usingSplitAndArray()[0])
}
En este código, hemos creado un método llamado usingSplitAndArray()
que llama al método split()
en la cadena devuelta por el método readFileData()
para devolver una lista de valores de cadena List<String>
.
El método split()
utiliza comas como delimitadores de la cadena. Tenga en cuenta que puede pasar un número variable de delimitadores en el método split()
para lograr el resultado deseado.
Dado que deseamos devolver una matriz de cadenas Array<String>
, usamos la lista devuelta para crear una nueva matriz utilizando el constructor Array()
. Este constructor acepta dos argumentos: el primero es el tamaño de la matriz y el segundo es una expresión lambda que acepta un int y devuelve un tipo T
.
Dado que nuestra lista puede proporcionar todos estos argumentos, pasamos el tamaño de la lista como el primer argumento del constructor Array()
, y el segundo argumento usa el índice de cada elemento de la lista para devolver los valores de la matriz.
Para verificar que nuestra cadena se convirtió en una matriz, registramos el valor en el índice 0
de la matriz devuelta usingSplitAndArray()[0]
en el método main()
.
Ejecute este código y asegúrese de que el resultado sea como se muestra a continuación.
Your
Use los métodos split()
y toTypedArray()
para dividir una cadena en una matriz en Kotlin
Comente el método main()
del ejemplo anterior y copie y pegue el siguiente código en el archivo Main.kt
después del método usingSplitAndArray()
.
fun usingToTypedArray(): Array<String> {
return readFileData()
.split(",")
.toTypedArray();
}
fun main(){
println(usingToTypedArray()[1])
}
En este código, creamos una función llamada usingToTypedArray()
que devuelve una matriz de cadenas Array<String>
de la lista devuelta por el método split()
.
En el ejemplo anterior, mencionamos que el método split()
devuelve una lista de cadenas List<String>
, y podemos usar el constructor Array()
para crear una matriz de cadenas.
Este ejemplo es mucho más fácil que el ejemplo anterior, ya que solo necesitamos llamar al método toTypedArray()
en la lista devuelta para devolver una matriz tipeada que es simplemente una matriz de cadenas Array<Strings>
.
En el método main()
, registramos el valor en el índice 1
devuelto por la matriz para verificar que la cadena se convirtió en una matriz.
Ejecute este código y asegúrese de que el resultado sea como se muestra a continuación.
service
Elimine los espacios en blanco iniciales y finales después de dividir una cadena en una matriz en Kotlin
Comente el método main()
en el ejemplo anterior y copie y pegue el siguiente código en el archivo Main.kt
después del método usingToTypedArray()
.
fun usingTrimMethod(): Array<String> {
return readFileData()
.split(",")
.map(String::trim)
.toTypedArray()
}
fun main(){
println(usingTrimMethod()[1])
}
Tenga en cuenta que nuestro texto contiene espacios en blanco iniciales y el ejemplo anterior devolvió un valor con el espacio en blanco como parte de la cadena. Para eliminar los espacios en blanco iniciales y finales, invocamos el método map()
y pasamos el método trim()
como argumento.
El método trim()
es una función de transformación que elimina todos los espacios en blanco iniciales y finales, si los hubiera. Este ejemplo es similar al anterior, y su objetivo principal es mostrar cómo eliminar los espacios en blanco.
Ejecute este ejemplo y tenga en cuenta que el valor registrado en la consola, en este caso, no tiene espacios en blanco, como se muestra a continuación.
service
Conclusión
En este tutorial, hemos aprendido cómo dividir una cadena en una matriz. Los temas que hemos cubierto incluyen:
- Lectura de una línea de cadena de un archivo de texto.
- Usar el método
split()
y el constructorArray()
para devolver una matriz de cadenas. - Usar el método
split()
y el métodotoTypedArray()
para devolver una matriz de cadenas.
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub