I denne artikel lærer du om Kotlin-strenge, strengskabeloner og få almindeligt anvendte strengegenskaber og -funktioner ved hjælp af eksempler.
Kotlin-streng
Strenge er en sekvens af tegn. For eksempel "Hello there!"
er en streng bogstavelig.
I Kotlin er alle strenge objekter i String
klassen. Betydning, strenglitteraturer som "Hello there!"
implementeres som forekomster af denne klasse.
Hvordan oprettes en strengvariabel?
Her er hvordan du kan definere en String
variabel i Kotlin. For eksempel,
val myString = "Hej der!"
Her er myString en variabel af typen String
.
Du kan erklære en variabel af typen String
og angive dens type i en sætning og initialisere variablen i en anden sætning senere i programmet.
val myString: String … myString = "Howdy"
Hvordan får man adgang til tegn i en streng?
For at få adgang til elementer (tegn) i en streng bruges indeksadgangsoperatør. For eksempel,
val myString = "Hej der!" val element = myString (2)
Her indeholder elementvariablen y, tredje tegn i myString-strengen. Det skyldes, at indeksering i Kotlin starter fra 0 og ikke 1.
val myString = "Hej der!" var item: Char item = myString (0) // element indeholder 'H' element = myString (9) // element indeholder '!' item = myString (10) // Fejl! Strengindeks er uden for rækkevidde = myString (-1) // Fejl! Strengindeks er uden for området
Eksempel: Iterer gennem en streng
Hvis du har brug for at gentage elementerne i en streng, kan du gøre det let ved hjælp af en for-loop.
fun main(args: Array) ( val myString = "Hey!" for (item in myString) ( println(item) ) )
Når du kører programmet, vil output være:
H e y !
Strenge i Kotlin er uforanderlige
Ligesom Java er strenge uforanderlige i Kotlin. Dette betyder, at du ikke kan ændre en strengs individuelle karakter. For eksempel,
var myString = "Hej!" myString (0) = 'h' // Fejl! Strenge
Du kan dog tildele en strengvariabel igen, hvis du erklærede variablen ved hjælp af nøgleord var
. ( Anbefalet læsning : Kotlin var Vs val)
Eksempel: Omfordeling af en strengvariabel.
fun main(args: Array) ( var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") )
Når du kører programmet, vil output være:
myString = Hej! myString = Hej!
Strenglitteratur
En bogstavelig er kildekodepræsentationen af en fast værdi. For eksempel "Hey there!"
er en strenglitteratur, der vises direkte i et program uden at kræve beregning (som variabler).
Der er to typer strenglitteraturer i Kotlin:
1. Undsluppet streng
En undslået streng kan have undsluppet tegn i dem. For eksempel,
val myString = "Hej der! n"
Her er en flugttegn, der indsætter en ny linje i teksten, hvor den vises.
Her er en liste over flugttegn, der understøttes i Kotlin:
- Indsætter backspace
- Indsætter newline
- Indsætter vognretur
\'
- Indsætter enkelt citattegn"
- Indsætter dobbelt citattegn\
- Indsætter tilbageslag$
- Indsætter dollartegn
2. Rå streng
En rå streng kan indeholde nye linier (ikke ny linjeafkomsttegn) og vilkårlig tekst. En rå streng afgrænses af et tredobbelt citat """
. For eksempel,
fun main(args: Array) ( val myString = """ for (character in "Hey!") println(character) """ print(myString) )
Når du kører programmet, vil output være:
til (tegn i "Hey!") println (tegn)
Du kan fjerne de førende hvide rum i en rå streng ved hjælp af trimMargin () -funktionen. For eksempel,
Eksempel: Udskrivning af rå streng
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()) )
Når du kører programmet, vil output være:
Output uden brug af trimMargin-funktion: | Kotlin er interessant. | Kotlin er sponsoreret og udviklet af JetBrains. Output ved hjælp af trimMargin-funktion: Kotlin er interessant. Kotlin er sponsoreret og udviklet af JetBrains.
Som standard trimMargin()
bruger funktionen | som marginpræfiks. Du kan dog ændre det ved at sende en ny streng til denne funktion.
Eksempel: trimMargin () med Argument
fun main(args: Array) ( val myString = """ !!! Kotlin is interesting. !!! Kotlin is sponsored and developed by JetBrains. """ println(myString.trimMargin("!!! ")) )
Når du kører programmet, vil output være:
Kotlin er interessant. Kotlin er sponsoreret og udviklet af 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:
Længden af s1 streng er 10. Strenge s1 og s2 er ens. Tredje karakter er y. resultat = Hej der! Hvordan har du det? Understreng er "den"
Besøg Kotlin String-klassen for at få flere oplysninger om udvidelsesegenskaber, udvidelse, funktioner og konstruktører.