Cadena Kotlin y Plantillas de cadena (con ejemplos)

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 Stringclase. 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 Stringvariable en Kotlin. Por ejemplo,

 val myString = "¡Hola!"

Aquí, myString es una variable de tipo String.

Puede declarar la variable de tipo Stringy 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:

  • - Pestaña de inserciones
  •  - 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 of get function as index access operator internally calls get 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 of plus function as + operator calls plus 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.

Articulos interesantes...