Swift - Stringhe
Le stringhe in Swift 4 sono una raccolta ordinata di caratteri, come "Hello, World!" e sono rappresentati dal tipo di dati Swift 4String, che a sua volta rappresenta una raccolta di valori di Character genere.
Crea una stringa
È possibile creare una stringa utilizzando un valore letterale stringa o creando un'istanza di una classe String come segue:
// String creation using String literal
var stringA = "Hello, Swift 4!"
print( stringA )
// String creation using String instance
var stringB = String("Hello, Swift 4!")
print( stringB )
//Multiple line string
let stringC = """
Hey this is a
example of multiple Line
string by tutorialsPoint
"""
print(stringC)
Quando il codice precedente viene compilato ed eseguito, produce il risultato seguente
Hello, Swift 4!
Hello, Swift 4!
Hey this is a
example of multiple Line
string by tutorialsPoint
Stringa vuota
È possibile creare una stringa vuota utilizzando una stringa letterale vuota o creando un'istanza della classe String come mostrato di seguito. È inoltre possibile verificare se una stringa è vuota o meno utilizzando la proprietà booleanaisEmpty.
// Empty string creation using String literal
var stringA = ""
if stringA.isEmpty {
print( "stringA is empty" )
} else {
print( "stringA is not empty" )
}
// Empty string creation using String instance
let stringB = String()
if stringB.isEmpty {
print( "stringB is empty" )
} else {
print( "stringB is not empty" )
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
stringA is empty
stringB is empty
Costanti di stringa
Puoi specificare se la tua stringa può essere modificata (o mutata) assegnandola a una variabile, oppure sarà costante assegnandola a una costante utilizzando let parola chiave come mostrato di seguito -
// stringA can be modified
var stringA = "Hello, Swift 4!"
stringA + = "--Readers--"
print( stringA )
// stringB can not be modified
let stringB = String("Hello, Swift 4!")
stringB + = "--Readers--"
print( stringB )
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Playground execution failed: error: <EXPR>:10:1: error: 'String' is not
convertible to '@lvalue UInt8'
stringB + = "--Readers--"
Interpolazione di stringhe
L'interpolazione di stringhe è un modo per costruire un nuovo valore String da una combinazione di costanti, variabili, letterali ed espressioni includendo i loro valori all'interno di una stringa letterale.
Ogni elemento (variabile o costante) che inserisci nella stringa letterale è racchiuso tra una coppia di parentesi, precedute da una barra rovesciata. Ecco un semplice esempio:
var varA = 20
let constA = 100
var varC:Float = 20.0
var stringA = "\(varA) times \(constA) is equal to \(varC * 100)"
print( stringA )
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
20 times 100 is equal to 2000.0
Concatenazione di stringhe
È possibile utilizzare l'operatore + per concatenare due stringhe o una stringa e un carattere o due caratteri. Ecco un semplice esempio:
let constA = "Hello,"
let constB = "World!"
var stringA = constA + constB
print( stringA )
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Hello,World!
Lunghezza della stringa
Le corde Swift 4 non hanno l'estensione lengthproprietà, ma puoi usare la funzione globale count () per contare il numero di caratteri in una stringa. Ecco un semplice esempio:
var varA = "Hello, Swift 4!"
print( "\(varA), length is \((varA.count))" )
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Hello, Swift 4!, length is 15
Confronto tra stringhe
È possibile utilizzare l'operatore == per confrontare due variabili o costanti di stringhe. Ecco un semplice esempio:
var varA = "Hello, Swift 4!"
var varB = "Hello, World!"
if varA == varB {
print( "\(varA) and \(varB) are equal" )
} else {
print( "\(varA) and \(varB) are not equal" )
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Hello, Swift 4! and Hello, World! are not equal
String Iterating
Le stringhe sono di nuovo una raccolta di valori in swift 4, quindi possiamo iterare su stringhe usando i loop. -
for chars in "ThisString" {
print(chars, terminator: " ")
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
T h i s S t r i n g
Stringhe Unicode
È possibile accedere a una rappresentazione UTF-8 e UTF-16 di una stringa iterando sulle sue proprietà utf8 e utf16 come dimostrato nell'esempio seguente:
var unicodeString = "Dog???"
print("UTF-8 Codes: ")
for code in unicodeString.utf8 {
print("\(code) ")
}
print("\n")
print("UTF-16 Codes: ")
for code in unicodeString.utf16 {
print("\(code) ")
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
UTF-8 Codes:
68
111
103
63
63
63
UTF-16 Codes:
68
111
103
63
63
63
Funzioni e operatori di stringa
Swift 4 supporta un'ampia gamma di metodi e operatori relativi alle stringhe:
Suor n | Funzioni / operatori e scopo |
---|---|
1 | isEmpty Un valore booleano che determina se una stringa è vuota o meno. |
2 | hasPrefix(prefix: String) Funzione per verificare se una determinata stringa di parametri esiste o meno come prefisso della stringa. |
3 | hasSuffix(suffix: String) Funzione per verificare se una determinata stringa di parametri esiste o meno come suffisso della stringa. |
4 | toInt() Funzione per convertire il valore String numerico in Integer. |
5 | count() Funzione globale per contare il numero di caratteri in una stringa. |
6 | utf8 Proprietà per restituire una rappresentazione UTF-8 di una stringa. |
7 | utf16 Proprietà per restituire una rappresentazione UTF-16 di una stringa. |
8 | unicodeScalars Proprietà per restituire una rappresentazione scalare Unicode di una stringa. |
9 | + Operatore per concatenare due stringhe, o una stringa e un carattere, o due caratteri. |
10 | += Operatore per aggiungere una stringa o un carattere a una stringa esistente. |
11 | == Operatore per determinare l'uguaglianza di due stringhe. |
12 | < Operatore per eseguire un confronto lessicografico per determinare se una stringa viene valutata come minore di un'altra. |
13 | startIndex Per ottenere il valore all'inizio dell'indice di stringa. |
14 | endIndex Per ottenere il valore all'indice finale della stringa. |
15 | Indices Per accedere agli indici uno per uno. cioè tutti i caratteri della stringa uno per uno. |
16 | insert("Value", at: position) Per inserire un valore in una posizione. |
17 | remove(at: position) removeSubrange(range) per rimuovere un valore in una posizione o per rimuovere un intervallo di valori dalla stringa. |
18 | reversed() restituisce il contrario di una stringa |