En este artículo, aprenderá sobre las cadenas de Kotlin, las plantillas de cadenas y algunas propiedades y funciones de cadenas de uso común con la ayuda de ejemplos.
Cuerda Kotlin
Las cadenas son una secuencia de caracteres. Por ejemplo, "Hello there!"
es una cadena literal.
En Kotlin, todas las cadenas son objetos de String
clase. Es decir, cadenas literales como "Hello there!"
se implementan como instancias de esta clase.
¿Cómo crear una variable de cadena?
Así es como puede definir una String
variable en Kotlin. Por ejemplo,
val myString = "¡Hola!"
Aquí, myString es una variable de tipo String
.
Puede declarar la variable de tipo String
y especificar su tipo en una declaración, e inicializar la variable en otra declaración más adelante en el programa.
val myString: String… myString = "Hola"
¿Cómo acceder a los caracteres de una cadena?
Para acceder a elementos (carácter) de una cadena, se utiliza el operador de acceso de índice. Por ejemplo,
val myString = "¡Hola!" val item = myString (2)
Aquí, la variable de elemento contiene y, tercer carácter de la cadena myString. Es porque la indexación en Kotlin comienza desde 0, no desde 1.
val myString = "¡Hola!" var item: Char item = myString (0) // item contiene 'H' item = myString (9) // item contiene '!' item = myString (10) // ¡Error! El índice de cadena está fuera de rango item = myString (-1) // ¡Error! El índice de cadena está fuera de rango
Ejemplo: iterar a través de una cadena
Si necesita iterar a través de elementos de una cadena, puede hacerlo fácilmente usando un bucle for.
fun main(args: Array) ( val myString = "Hey!" for (item in myString) ( println(item) ) )
Cuando ejecute el programa, la salida será:
H e y !
Las cadenas en Kotlin son inmutables
Al igual que Java, las cadenas son inmutables en Kotlin. Esto significa que no puede cambiar el carácter individual de una cadena. Por ejemplo,
var myString = "¡Oye!" myString (0) = 'h' // ¡Error! Instrumentos de cuerda
Sin embargo, puede reasignar una variable de cadena nuevamente si declaró la variable usando una palabra clave var
. ( Lectura recomendada : Kotlin var Vs val)
Ejemplo: reasignación de una variable de cadena.
fun main(args: Array) ( var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") )
Cuando ejecute el programa, la salida será:
myString = ¡Oye! myString = ¡Hola!
Literales de cadena
Un literal es la representación del código fuente de un valor fijo. Por ejemplo, "Hey there!"
es una cadena literal que aparece directamente en un programa sin requerir cálculo (como variables).
Hay dos tipos de literales de cadena en Kotlin:
1. Cadena escapada
Una cadena de escape puede tener caracteres de escape en ellos. Por ejemplo,
val myString = "¡Hola! n"
Aquí, hay un carácter de escape que inserta una nueva línea en el texto donde aparece.
Aquí hay una lista de caracteres de escape compatibles con Kotlin:
- Inserta retroceso
- Inserta nueva línea
- Inserta retorno de carro
\'
- Inserta un carácter de comillas simples"
- Inserta un carácter de comillas dobles\
- Inserta barra invertida$
- Inserta el carácter del dólar
2. Cadena sin procesar
Una cadena sin formato puede contener nuevas líneas (no un carácter de escape de nueva línea) y texto arbitrario. Una cadena sin formato está delimitada por una comilla triple """
. Por ejemplo,
fun main(args: Array) ( val myString = """ for (character in "Hey!") println(character) """ print(myString) )
Cuando ejecute el programa, la salida será:
para (personaje en "¡Oye!") println (personaje)
Puede eliminar los espacios en blanco iniciales de una cadena sin procesar utilizando la función trimMargin (). Por ejemplo,
Ejemplo: impresión de cadena sin formato
fun main(args: Array) ( println("Output without using trimMargin function:") val myString = """ |Kotlin is interesting. |Kotlin is sponsored and developed by JetBrains. """ println(myString) println("Output using trimMargin function:") println(myString.trimMargin()) )
Cuando ejecute el programa, la salida será:
Salida sin usar la función trimMargin: | Kotlin es interesante. | Kotlin está patrocinado y desarrollado por JetBrains. Salida usando la función trimMargin: Kotlin es interesante. Kotlin está patrocinado y desarrollado por JetBrains.
De forma predeterminada, la trimMargin()
función utiliza | como prefijo de margen. Sin embargo, puede cambiarlo pasando una nueva cadena a esta función.
Ejemplo: trimMargin () con Argument
fun main(args: Array) ( val myString = """ !!! Kotlin is interesting. !!! Kotlin is sponsored and developed by JetBrains. """ println(myString.trimMargin("!!! ")) )
Cuando ejecute el programa, la salida será:
Kotlin es interesante. Kotlin está patrocinado y desarrollado por JetBrains.
Kotlin String Templates
Kotlin has an awesome feature called string templates that allows strings to contain template expressions.
A string template expression starts with a dollar sign $
. Here are few examples:
Example: Kotlin String Template
fun main(args: Array) ( val myInt = 5; val myString = "myInt = $myInt" println(myString) )
When you run the program, the output will be:
myInt = 5
It is because the expression $myInt (expression starting with $ sign) inside the string is evaluated and concatenated into the string.
Example: String Template With Raw String
fun main(args: Array) ( val a = 5 val b = 6 val myString = """ |$(if (a> b) a else b) """ println("Larger number is: $(myString.trimMargin())") )
When you run the program, the output will be:
Larger number is: 6
Few String Properties and Functions
Since literals in Kotlin are implemented as instances of String
class, you can use several methods and properties of this class.
length
property - returns the length of character sequence of an string.compareTo
function - compares this String (object) with the specified object. Returns 0 if the object is equal to the specfied object.get
function - returns character at the specified index.
You can use index access operator instead ofget
function as index access operator internally callsget
function.plus
function - returns a new string which is obtained by the concatenation of this string and the string passed to this function.
You can use+
operator instead ofplus
function as+
operator callsplus
function under the hood.subSequence
Function - returns a new character sequence starting at the specified start and end index.
Example: String Properties and Function
fun main(args: Array) ( val s1 = "Hey there!" val s2 = "Hey there!" var result: String println("Length of s1 string is $(s1.length).") result = if (s1.compareTo(s2) == 0) "equal" else "not equal" println("Strings s1 and s2 are $result.") // s1.get(2) is equivalent to s1(2) println("Third character is $(s1.get(2)).") result = s1.plus(" How are you?") // result = s1 + " How are you?" println("result = $result") println("Substring is "$(s1.subSequence(4, 7)) "") )
When you run the program, the output is:
La longitud de la cadena s1 es 10. Las cadenas s1 y s2 son iguales. El tercer personaje es y. result = ¡Hola! ¿Cómo estás? La subcadena es "la"
Visite la clase Kotlin String para obtener más información sobre propiedades de extensión, extensión, funciones y constructores.