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