Modèles de chaînes et de chaînes Kotlin (avec exemples)

Dans cet article, vous en apprendrez davantage sur les chaînes Kotlin, les modèles de chaînes et quelques propriétés et fonctions de chaîne couramment utilisées à l'aide d'exemples.

Chaîne de Kotlin

Les chaînes sont une séquence de caractères. Par exemple, "Hello there!"est une chaîne littérale.

Dans Kotlin, toutes les chaînes sont des objets de Stringclasse. Cela signifie que les chaînes littérales telles que "Hello there!"sont implémentées en tant qu'instances de cette classe.

Comment créer une variable String?

Voici comment vous pouvez définir une Stringvariable dans Kotlin. Par exemple,

 val myString = "Salut!"

Ici, myString est une variable de type String.

Vous pouvez déclarer une variable de type Stringet spécifier son type dans une instruction, et initialiser la variable dans une autre instruction plus tard dans le programme.

 val myString: String… myString = "Howdy"

Comment accéder aux caractères d'une chaîne?

Pour accéder aux éléments (caractère) d'une chaîne, l'opérateur d'accès à l'index est utilisé. Par exemple,

val myString = "Salut!" élément val = maString (2)

Ici, la variable d'élément contient y, troisième caractère de la chaîne myString. C'est parce que l'indexation dans Kotlin commence à 0 et non à 1.

val myString = "Salut!" var item: Char item = myString (0) // item contient 'H' item = myString (9) // item contient '!' item = myString (10) // Erreur! L'index de la chaîne est hors de portée item = myString (-1) // Erreur! L'index de chaîne est hors de portée

Exemple: itérer à travers une chaîne

Si vous devez parcourir des éléments d'une chaîne, vous pouvez le faire facilement en utilisant une boucle for.

 fun main(args: Array) ( val myString = "Hey!" for (item in myString) ( println(item) ) )

Lorsque vous exécutez le programme, la sortie sera:

 H e y ! 

Les chaînes de Kotlin sont immuables

Comme Java, les chaînes sont immuables dans Kotlin. Cela signifie que vous ne pouvez pas modifier le caractère individuel d'une chaîne. Par exemple,

var myString = "Hé!" myString (0) = 'h' // Erreur! Cordes

Cependant, vous pouvez réaffecter une variable chaîne si vous avez déclaré la variable à l'aide du mot clé var. ( Lecture recommandée : Kotlin var Vs val)

Exemple: réattribution d'une variable chaîne.

 fun main(args: Array) ( var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") )

Lorsque vous exécutez le programme, la sortie sera:

myString = Hé! myString = Bonjour!

Littéraux de chaîne

Un littéral est la représentation dans le code source d'une valeur fixe. Par exemple, "Hey there!"est une chaîne littérale qui apparaît directement dans un programme sans nécessiter de calcul (comme les variables).

Il existe deux types de littéraux de chaîne dans Kotlin:

1. Chaîne échappée

Une chaîne échappée peut contenir des caractères échappés. Par exemple,

 val myString = "Salut! n" 

Voici un caractère d'échappement qui insère une nouvelle ligne dans le texte là où il apparaît.

Voici une liste des caractères d'échappement pris en charge dans Kotlin:

  • - Onglet Inserts
  •  - Insère un retour arrière
  • - Insère une nouvelle ligne
  • - Insère le retour chariot
  • \' - Insère un caractère guillemet simple
  • " - Insère un caractère guillemet double
  • \ - Insère une barre oblique inverse
  • $ - Insère le caractère dollar

2. Chaîne brute

Une chaîne brute peut contenir des sauts de ligne (pas de caractère d'échappement de nouvelle ligne) et du texte arbitraire. Une chaîne brute est délimitée par un guillemet triple """. Par exemple,

 fun main(args: Array) ( val myString = """ for (character in "Hey!") println(character) """ print(myString) )

Lorsque vous exécutez le programme, la sortie sera:

 for (caractère dans "Hey!") println (caractère)

Vous pouvez supprimer les premiers espaces d'une chaîne brute à l'aide de la fonction trimMargin (). Par exemple,

Exemple: impression d'une chaîne brute

 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()) ) 

Lorsque vous exécutez le programme, la sortie sera:

Sortie sans utiliser la fonction trimMargin: | Kotlin est intéressant. | Kotlin est sponsorisé et développé par JetBrains. Sortie en utilisant la fonction trimMargin: Kotlin est intéressant. Kotlin est sponsorisé et développé par JetBrains.

Par défaut, la trimMargin()fonction utilise | comme préfixe de marge. Cependant, vous pouvez le modifier en passant une nouvelle chaîne à cette fonction.

Exemple: trimMargin () avec Argument

 fun main(args: Array) ( val myString = """ !!! Kotlin is interesting. !!! Kotlin is sponsored and developed by JetBrains. """ println(myString.trimMargin("!!! ")) )

Lorsque vous exécutez le programme, la sortie sera:

Kotlin est intéressant. Kotlin est sponsorisé et développé par 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 longueur de la chaîne s1 est de 10. Les chaînes s1 et s2 sont égales. Le troisième caractère est y. result = Salut! Comment vas-tu? La sous-chaîne est "la"

Visitez la classe Kotlin String pour plus d'informations sur les propriétés d'extension, l'extension, les fonctions et les constructeurs.

Articles intéressants...