English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este artículo, aprenderá a usar ejemplos para aprender cadenas de Kotlin, plantillas de strings y algunas propiedades y funciones de strings comunes.
Las cadenas son secuencias de caracteres. Por ejemplo, "¡Hola aquí!" es una literal de cadena.
En Kotlin, todas las cadenas son objetos de la clase String. Esto significa que las cadenas literales como "¡Hola aquí!" se implementan como instancias de esa clase.
Esto es cómo se define una variable de tipo String en Kotlin. Por ejemplo,
val miCadena = "¡Hey allí!"
Aquí, miCadena es una variable de tipo String.
Puede declarar una variable de tipo String y especificar su tipo en una sola instrucción, luego inicializarla en otra instrucción del programa más tarde.
val miCadena: String ... .. ... miCadena = "¡Hola!"
Para acceder a un elemento (carácter) de una cadena, utilice el operador de acceso de índice. Por ejemplo,
val miCadena = "¡Hey allí!" val item = miCadena[2]
Aquí, la variable item contiene el tercer carácter 'y' de la cadena miCadena. Esto se debe a que los índices en Kotlin comienzan en 0 en lugar de 1。
val miCadena = "¡Hey allí!" var item: Char item = miCadena[0] // item = 'H' item = miCadena[9] // item = '!' item = miCadena[10] // ¡Error! Índice de cadena fuera de rango item = miCadena[-1] // ¡Error! Índice de cadena fuera de rango
Si necesita recorrer los elementos de una cadena, puede usarBucle forFácilImplementación。
fun main(args: Array<String>) { val miCadena = "¡Hey!" for (item in miCadena) { println(item) } }
Al ejecutar el programa, la salida es:
H e y !
Al igual que en Java, las cadenas en Kotlin son inmutables. Esto significa que no puede cambiar un solo carácter de la cadena. Por ejemplo,
var miCadena = "¡Hey!" miCadena[0] = 'h' // ¡Error! Cadenas
Sin embargo, si se declara una variable de cadena utilizando la palabra clave var, se puede reasignar esa variable。(Recomendaciones de lectura:Kotlin var Vs val)
fun main(args: Array<String>) { var miCadena = "¡Hey!" println("miCadena = $miCadena") miCadena = "¡Hola!" println("miCadena = $miCadena") }
Al ejecutar el programa, la salida es:
myString = Hey! myString = Hello!
Los literals son la representación en código fuente de valores fijos. Por ejemplo, "Hey there!" es un texto literal que aparece directamente en el programa sin necesidad de cálculo (comoVariable)
En Kotlin hay dos tipos de literals de cadenas:
Los caracteres en una cadena de escape pueden ya haber sido escapados. Por ejemplo
val myString = "Hey there!\n"
Aquí, \n es el carácter de escape, utilizado para insertar un salto de línea en la posición deseada del texto.
A continuación se muestra la lista de caracteres de escape soportados por Kotlin:
\t - Insertar carácter de tabulación
\b - Insertar carácter de retroceso
\n - Insertar carácter de nueva línea
\r - Insertar carácter de retorno de carro
\' - Insertar comillas simples
\" - Insertar comillas dobles
\\\ - Insertar barras invertidas
\$ - Insertar caracteres de dólar
La cadena original puede contener saltos de línea (no saltos de línea) y cualquier texto. La cadena original está separada por comillas dobles """. Por ejemplo:
fun main(args: Array<String>) { val myString = """ for (character in "Hey!") println(character) """ print(myString) }
Al ejecutar el programa, la salida es:
for (character in "Hey!") println(character)
Puedes usar la función trimMargin() para eliminar los espacios en blanco iniciales de la cadena original. Por ejemplo:
fun main(args: Array<String>) { println("Salida sin la función trimMargin():") val myString = """ |Kotlin es interesante. |Kotlin es patrocinado y desarrollado por JetBrains. """ println(myString) println("Salida con la función trimMargin():\n") println(myString.trimMargin()) }
Al ejecutar el programa, la salida es:
Salida sin la función trimMargin(): |Kotlin es interesante. |Kotlin es patrocinado y desarrollado por JetBrains. Salida con la función trimMargin(): Kotlin es interesante. Kotlin es patrocinado y desarrollado por JetBrains.
Por defecto, la función trimMargin() usa | como prefijo de margen. Pero, puedes cambiarlo pasando una nueva cadena a la función.
fun main(args: Array<String>) { val myString = """ !!! Kotlin es interesante. !!! Kotlin es patrocinado y desarrollado por JetBrains. """ println(myString.trimMargin("!!! ")) }
Al ejecutar el programa, la salida es:
Kotlin es interesante. Kotlin es patrocinado y desarrollado por JetBrains.
Kotlin tiene una excelente función llamada plantilla de cadena, que permite que las cadenas contengan expresiones de plantilla.
Las expresiones de plantilla de cadena de Kotlin comienzan con el símbolo $. Aquí hay algunos ejemplos:
fun main(args: Array<String>) { val myInt = 5; val myString = "myInt = $myInt" println(myString) }
Al ejecutar el programa, la salida es:
myInt = 5
Esto se debe a que la expresión $myInt (expresión que comienza con el símbolo $) dentro de la cadena se evalúa y se conecta a la cadena.
fun main(args: Array<String>) { val a = 5 val b = 6 val myString = """ |${if (a > b) a else b} """ println("El número más grande es: ${myString.trimMargin()}") }
Al ejecutar el programa, la salida es:
El número más grande es: 6
Dado que los literales en Kotlin se implementan como instancias de la clase String, puede usar varios métodos y propiedades de esta clase.
Atributo length - Devuelve la longitud de la secuencia de caracteres de la cadena.
Función compareTo -Compara este objeto de cadena con el objeto especificado. Si el objeto es igual al objeto especificado, devuelve 0.
Función get - Devuelve el carácter en la posición de índice especificada. Puede usar el operador de acceso de índice en lugar de la función get, porque el operador de acceso de índice llama internamente a la función get.
la función plus - Devuelve una nueva cadena, que se obtiene conectando esta cadena con la cadena pasada a esta función. Puede usar + El operador reemplaza a la función plus, porque+El operador llama a la función plus en segundo plano.
Función subSequence - Devuelve una nueva secuencia de caracteres desde los índices de inicio y final especificados.
fun main(args: Array<String>) { val s1 = "Hey there!" val s2 = "Hey there!" var result: String println("s1La longitud de la cadena es ${s1.length}) result = if (s1.compareTo(s2) == 0) "igual" else "diferente" println("La cadena s1y2es ${result.}) // s1.get(2) equivalente a s1[2] println("El tercer carácter es ${s1.get(2).toString()) result = s1.plus(" How are you?") // result = s1 + "How are you?" println("result = " + result) println("La subcadena es " + s1.subSequence(4, 7}} }
La salida del programa es:
s1La longitud de la cadena es 10. La cadena s1y2Son iguales. El tercer carácter es y. result = Hey there! How are you? La subcadena es "the"