Kotlin String- en String-sjablonen (met voorbeelden)

In dit artikel leer je aan de hand van voorbeelden over Kotlin-strings, string-sjablonen en enkele veelgebruikte string-eigenschappen en -functies.

Kotlin-snaar

Strings zijn een reeks karakters. Is bijvoorbeeld "Hello there!"een letterlijke tekenreeks.

In Kotlin zijn alle strings klasseobjecten String. Dit betekent dat letterlijke tekenreeksen zoals "Hello there!"worden geïmplementeerd als instanties van deze klasse.

Hoe maak je een String-variabele aan?

Hier is hoe je een Stringvariabele in Kotlin kunt definiëren . Bijvoorbeeld,

 val myString = "Hallo daar!"

Hier is myString een variabele van het type String.

U kunt de variabele van het type declareren Stringen het type ervan specificeren in een instructie, en de variabele initialiseren in een andere instructie later in het programma.

 val myString: String… myString = "Howdy"

Hoe toegang krijgen tot tekens van een string?

Om toegang te krijgen tot elementen (teken) van een string, wordt de index-toegangsoperator gebruikt. Bijvoorbeeld,

val myString = "Hallo daar!" val item = myString (2)

Hier bevat de itemvariabele y, het derde teken van de myString-string. Het is omdat het indexeren in Kotlin begint bij 0 en niet bij 1.

val myString = "Hallo daar!" var item: Char item = myString (0) // item bevat 'H' item = myString (9) // item bevat '!' item = myString (10) // Fout! Stringindex valt buiten het bereik item = myString (-1) // Fout! Stringindex is buiten bereik

Voorbeeld: herhaal door een string

Als je elementen van een string moet doorlopen, kun je dit gemakkelijk doen door een for-lus te gebruiken.

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

Wanneer u het programma uitvoert, is de uitvoer:

 H e y ! 

Strings in Kotlin zijn onveranderlijk

Net als Java zijn strings onveranderlijk in Kotlin. Dit betekent dat u het individuele karakter van een string niet kunt wijzigen. Bijvoorbeeld,

var myString = "Hey!" myString (0) = 'h' // Fout! Snaren

U kunt een stringvariabele echter opnieuw toewijzen als u de variabele met trefwoord hebt gedeclareerd var. ( Aanbevolen literatuur : Kotlin var Vs val)

Voorbeeld: een tekenreeksvariabele opnieuw toewijzen.

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

Wanneer u het programma uitvoert, is de uitvoer:

myString = Hé! myString = Hallo!

String Literals

Een letterlijke waarde is de broncode-weergave van een vaste waarde. Is bijvoorbeeld "Hey there!"een letterlijke tekenreeks die rechtstreeks in een programma verschijnt zonder dat er berekeningen nodig zijn (zoals variabelen).

Er zijn twee soorten letterlijke tekenreeksen in Kotlin:

1. Ontsnapt koord

Een escapetekenreeks bevat mogelijk escapetekens. Bijvoorbeeld,

 val myString = "Hallo daar! n" 

Hier is een escape-teken dat een nieuwe regel in de tekst invoegt waar het verschijnt.

Hier is een lijst met escape-tekens die worden ondersteund in Kotlin:

  • - Invoegtabblad
  •  - Voegt backspace in
  • - Voegt een nieuwe regel in
  • - Voegt regelterugloop in
  • \' - Voegt een enkel aanhalingsteken in
  • " - Voegt een dubbel aanhalingsteken in
  • \ - Voegt backslash in
  • $ - Voegt dollarteken in

2. Ruwe tekenreeks

Een onbewerkte tekenreeks kan nieuwe regels bevatten (geen escape-teken voor een nieuwe regel) en willekeurige tekst. Een onbewerkte tekenreeks wordt gescheiden door een drievoudig aanhalingsteken """. Bijvoorbeeld,

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

Wanneer u het programma uitvoert, is de uitvoer:

 voor (teken in "Hey!") println (teken)

U kunt de voorloopspaties van een onbewerkte tekenreeks verwijderen met de functie trimMargin (). Bijvoorbeeld,

Voorbeeld: onbewerkte tekenreeks afdrukken

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

Wanneer u het programma uitvoert, is de uitvoer:

Uitvoer zonder de functie trimMargin te gebruiken: | Kotlin is interessant. | Kotlin wordt gesponsord en ontwikkeld door JetBrains. Uitvoer met de functie trimMargin: Kotlin is interessant. Kotlin wordt gesponsord en ontwikkeld door JetBrains.

Standaard gebruikt de trimMargin()functie | als marge-voorvoegsel. U kunt het echter wijzigen door een nieuwe tekenreeks aan deze functie door te geven.

Voorbeeld: trimMargin () met argument

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

Wanneer u het programma uitvoert, is de uitvoer:

Kotlin is interessant. Kotlin wordt gesponsord en ontwikkeld door 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:

Lengte van s1 string is 10. Strings s1 en s2 zijn gelijk. Het derde teken is y. result = Hallo daar! Hoe gaat het met jou? Substring is 'de'

Bezoek de Kotlin String-klasse voor meer informatie over extensie-eigenschappen, extensie, functies en constructors.

Interessante artikelen...