Kotlin sträng- och strängmallar (med exempel)

I den här artikeln lär du dig om Kotlin-strängar, strängmallar och några vanliga strängegenskaper och funktioner med hjälp av exempel.

Kotlin-sträng

Strängar är en sekvens av tecken. Till exempel "Hello there!"är en sträng bokstavlig.

I Kotlin är alla strängar klassobjekt String. Betydelse, stränglitterärer som "Hello there!"implementeras som instanser av denna klass.

Hur skapar jag en strängvariabel?

Här är hur du kan definiera en Stringvariabel i Kotlin. Till exempel,

 val myString = "Hej där!"

Här är myString en variabel av typen String.

Du kan deklarera typvariabel Stringoch ange dess typ i ett uttalande och initialisera variabeln i ett annat uttalande senare i programmet.

 val myString: String … myString = "Howdy"

Hur får jag tillgång till tecken i en sträng?

För att komma åt element (tecken) i en sträng används indexåtkomstoperatör. Till exempel,

val myString = "Hej där!" val artikel = myString (2)

Här innehåller artikelvariabel y, tredje tecknet i myString-strängen. Det beror på att indexering i Kotlin börjar från 0 och inte 1.

val myString = "Hej där!" var item: Char item = myString (0) // objektet innehåller 'H' objekt = myString (9) // objektet innehåller '!' artikel = myString (10) // Fel! Strängindex är utanför intervallet artikel = myString (-1) // Fel! Strängindex är utanför intervallet

Exempel: Iterera genom en sträng

Om du behöver itera igenom element i en sträng kan du göra det enkelt med en for-loop.

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

När du kör programmet blir resultatet:

 H e y ! 

Strängar i Kotlin är oföränderliga

Liksom Java är strängar oföränderliga i Kotlin. Det betyder att du inte kan ändra en strängs individuella karaktär. Till exempel,

var myString = "Hej!" myString (0) = 'h' // Fel! Strängar

Du kan dock tilldela en strängvariabel om igen om du förklarade variabeln med hjälp av nyckelordet var. ( Rekommenderad läsning : Kotlin var Vs val)

Exempel: Tilldela en strängvariabel om.

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

När du kör programmet blir resultatet:

myString = Hej! myString = Hej!

Stränglitteratur

En bokstav är källkodsrepresentationen för ett fast värde. Till exempel "Hey there!"är en stränglitteratur som visas direkt i ett program utan att beräkning krävs (som variabler).

Det finns två typer av stränglitterärer i Kotlin:

1. Flyktsträng

En rymd sträng kan ha rymt tecken i dem. Till exempel,

 val myString = "Hej där! n" 

Här är en flykt karaktär som infogar en ny rad i texten där den visas.

Här är en lista över flyktecken som stöds i Kotlin:

  • - Fliken Inserts
  •  - Infogar baksteg
  • - Infogar ny linje
  • - Sätter in vagnretur
  • \' - Infogar enstaka citattecken
  • " - Infogar dubbelt citattecken
  • \ - Infogar snedstreck
  • $ - Infogar dollartecken

2. Rå sträng

En rå sträng kan innehålla nya rader (inte ny radtecken) och godtycklig text. En rå sträng avgränsas av en trippel offert """. Till exempel,

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

När du kör programmet blir resultatet:

 för (tecken i "Hej!") println (tecken)

Du kan ta bort de ledande vita utrymmena i en rå sträng med funktionen trimMargin (). Till exempel,

Exempel: Utskrift av rå sträng

 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ör programmet blir resultatet:

Output utan att använda trimMargin-funktionen: | Kotlin är intressant. | Kotlin sponsras och utvecklas av JetBrains. Output med trimMargin-funktion: Kotlin är intressant. Kotlin sponsras och utvecklas av JetBrains.

Som standard trimMargin()använder funktionen | som marginalprefix. Du kan dock ändra det genom att skicka en ny sträng till den här funktionen.

Exempel: 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ör programmet blir resultatet:

Kotlin är intressant. Kotlin sponsras och utvecklas av 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:

Längden på s1-strängen är 10. Strängarna s1 och s2 är lika. Tredje karaktären är y. resultat = Hej där! Hur mår du? Substring är "den"

Besök Kotlin String-klassen för mer information om förlängningsegenskaper, tillägg, funktioner och konstruktörer.

Intressanta artiklar...