English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kotlin Stringhe e Stringhe di Modello

In questo articolo, imparerai a utilizzare esempi per imparare le stringhe Kotlin, le stringhe di modello e alcune proprietà e funzioni di stringa comuni.

Kotlin String (stringa)

La stringa è una sequenza di caratteri. Ad esempio, \

In Kotlin, tutte le stringhe sono oggetti della classe String. Questo significa che stringhe come "Hello here!" vengono implementate come istanze di questa classe.

Come creare una variabile di stringa?

Questo è il metodo per definire una variabile String in Kotlin. Ad esempio,

val myString = "Hey there!"

In questo caso, myString è una variabile di tipo String.

È possibile dichiarare una variabile di tipo String e specificarne il tipo in una singola istruzione, quindi inizializzare la variabile in un'altra istruzione del programma.

val myString: String
... .. ...
myString = "Howdy"

Come accedere ai caratteri della stringa?

Per accedere agli elementi (caratteri) della stringa, utilizzare l'operatore di accesso dell'indice. Ad esempio,

val myString = "Hey there!"
val item = myString[2]

In questo caso, la variabile item contiene il terzo carattere 'y' della stringa myString. Questo perché l'indice in Kotlin parte da 0 e non da 1.

val myString = "Hey there!"
var item: Char
item = myString[0] // item = 'H'
item = myString[9] // item = '!'
item = myString[10] // Error! L'indice della stringa è fuori gamma
item = myString[-1] // Error! L'indice della stringa è fuori gamma

Esempio: esplorazione della stringa

Se è necessario esplorare gli elementi di una stringa, è possibile utilizzareCiclo forFacileImplementazione.

fun main(args: Array<String>) {
    val myString = "Hey!"
    for (item in myString) {
        println(item)
    }
}

Quando si esegue questo programma, l'output è:

H
e
y
!

Le stringhe in Kotlin sono immutabili

Come in Java, le stringhe in Kotlin sono immutabili. Questo significa che non è possibile modificare un singolo carattere della stringa. Ad esempio,

var myString = "Hey!"
myString[0] = 'h' // Error! Stringhe

Ma se si dichiara una variabile di stringa utilizzando la parola chiave var, è possibile riassegnare la variabile. (Leggi consigliati:Kotlin var Vs val)

Esempio: riassegnazione della variabile di stringa.

fun main(args: Array<String>) {
    var myString = "Hey!"
    println("myString = $myString")
    myString = "Hello!"
    println("myString = $myString")
}

Quando si esegue questo programma, l'output è:

myString = Hey!
myString  = Hello!

Testo letterale

I letterali sono la rappresentazione del codice sorgente di valori fissi. Ad esempio, "Hey there!" è una stringa letterale che appare direttamente nel programma senza necessità di calcolo (comeVariabile)

In Kotlin ci sono due tipi di letterali di stringa:

1. Stringa escapata

I caratteri possono essere già escapati nella stringa escapata. Ad esempio

val myString = "Hey there!\n"

Qui, \n è il carattere di escape, utilizzato per inserire un newline nel testo.

Ecco l'elenco dei caratteri di escape supportati da Kotlin:

  • \t - Inserisci il tabulatore

  • \b - Inserisci il carattere di backspace

  • \n - Inserisci il carattere di newline

  • \r - Inserisci il carattere di ritorno a capo

  • \' - Inserisci il carattere virgoletta singola

  • \" - Inserisci il carattere virgoletta doppia

  • \\ - Inserisci il backslash

  • \$ - Inserisci il carattere dollaro

2. Stringa originale

La stringa originale può contenere caratteri di newline (non newline) e qualsiasi testo. La stringa originale è separata da tre virgolette """. Ad esempio:

fun main(args: Array<String>) {
    val myString = """
    for (character in "Hey!")
        println(character)
"""
    print(myString)
}

Quando si esegue questo programma, l'output è:

    for (character in "Hey!")
        println(character)

Puoi usare la funzione trimMargin() per rimuovere gli spazi iniziali della stringa originale. Ad esempio:

Esempio: stampa della stringa originale

fun main(args: Array<String>) {
    println("Output senza la funzione trimMargin():")
    val myString = """
    |Kotlin è interessante.
    |Kotlin è sponsorizzato e sviluppato da JetBrains.
"""
    println(myString)
    println("Esempio di output con la funzione trimMargin():\n")
    println(myString.trimMargin())
}

Quando si esegue questo programma, l'output è:

Output senza la funzione trimMargin():
    |Kotlin è interessante.
    |Kotlin è sponsorizzato e sviluppato da JetBrains.
Esempio di output con la funzione trimMargin():
Kotlin è interessante.
Kotlin è sponsorizzato e sviluppato da JetBrains.

Per impostazione predefinita, la funzione trimMargin() utilizza | come prefisso di margine. Ma puoi cambiarlo passando una nuova stringa alla funzione.

Esempio: funzione trimMargin() con parametri

fun main(args: Array<String>) {
    val myString = """
    !!! Kotlin è interessante.
    !!! Kotlin è sponsorizzato e sviluppato da JetBrains.
"""
    println(myString.trimMargin("!!! "))
}

Quando si esegue questo programma, l'output è:

Kotlin è interessante.
Kotlin è sponsorizzato e sviluppato da JetBrains.

Modello di stringa Kotlin

Kotlin ha una fantastica funzione chiamata template di stringa, che permette alle stringhe di includere espressioni di template.

Le espressioni dei template di stringa in Kotlin iniziano con il simbolo $. Ecco alcuni esempi:

Esempio: Template di stringa Kotlin

fun main(args: Array<String>) {
    val myInt = 5;
    val myString = "myInt = $myInt"
    println(myString)
}

Quando si esegue questo programma, l'output è:

myInt = 5

Questo è perché l'espressione $myInt (un'espressione che inizia con il simbolo $) viene valutata e concatenata alla stringa.

Esempio: Stringhe template con stringhe originali

fun main(args: Array<String>) {
    val a = 5
    val b = 6
    val myString = """
    |${if (a > b) a else b}
"""
    println("Il numero più grande è: ${myString.trimMargin()}")
}

Quando si esegue questo programma, l'output è:

Il numero più grande è: 6

Alcune proprietà e funzioni delle stringhe

Poiché i literal in Kotlin sono implementati come istanze della classe String, puoi usare diversi metodi e attributi di questa classe.

  • L'attributo length - Restituisce la lunghezza della sequenza di caratteri della stringa.

  • La funzione compareTo - Confronta questo stringa (oggetto) con l'oggetto specificato. Se l'oggetto è uguale all'oggetto specificato, restituisce 0.

  • La funzione get - Restituisce il carattere all'indice specificato. Puoi usare l'operatore di accesso all'indice invece della funzione get, perché l'operatore di accesso all'indice chiama internamente la funzione get.

  • La funzione plus - Restituisce una nuova stringa ottenuta concatenando la stringa con quella passata a questa funzione. Puoi usare l'operatore + al posto della funzione plus, perché l'operatore + chiama in background la funzione plus.

  • La funzione subSequence - Restituisce una nuova sequenza di caratteri a partire da un indice di inizio e fine specificato.

Esempio: Proprietà e funzioni delle stringhe

fun main(args: Array<String>) {
    val s1 = "Hey there!"
    val s2 = "Hey there!"
    var result: String
    println("La lunghezza della stringa s1 è ${s1.length}.")
    result = if (s1.compareTo(s2) == 0) "uguali" else "diversi"
    println("La stringa s1 e s2 sono ${result}.")
    // s1.get(2) è uguale a s1[2]
    println("Il terzo carattere è ${s1.get(2)}.")
    result = s1.plus(" How are you?") // result = s1 + " How are you?"
    println("result = $result")
    println("La sottostringa è \
}

L'output durante l'esecuzione del programma è:

La lunghezza della stringa s1 è 10.
Le stringhe s1 e s2 sono uguali.
Il terzo carattere è y.
result = Hey there! How are you?
La sottostringa è "the"