Chaînes de caractères Swift

Une chaîne Swift est une collection d'une série de caractères. Par exemple, une collection ordonnée de valeurs de type caractère telles que "Hello, World!", dont le type de données estString。


Création de chaînes

Vous pouvez créer une chaîne en utilisant un littéral de chaîne ou une instance de la classe String :

import Cocoa

// 使用字符串字面量
var stringA = "Hello, World!"
print( stringA )

// String 实例化
var stringB = String("Hello, World!")
print( stringB )

La sortie de l'exécution du programme ci-dessus est :

Hello, World!
Hello, World!

Chaînes vides

Vous pouvez affecter un littéral de chaîne vide à une variable ou initialiser une instance de la classe String pour initialiser une chaîne vide. Nous pouvons utiliser la propriété de chaîne isEmpty pour déterminer si la chaîne est vide :

import Cocoa

// 使用字符串字面量创建空字符串
var stringA = ""

if stringA.isEmpty {
   print( "stringA 是空的" )
} else {
   print( "stringA 不是空的" )
}

// 实例化 String 类来创建空字符串
let stringB = String()

if stringB.isEmpty {
   print( "stringB 是空的" )
} else {
   print( "stringB 不是空的" )
}

La sortie de l'exécution du programme ci-dessus est :

stringA 是空的
stringB 是空的

Constantes de chaînes

Vous pouvez affecter une chaîne à une variable ou à une constante. Les variables sont modifiables, tandis que les constantes ne sont pas modifiables.

import Cocoa

// stringA 可被修改
var stringA = "Example:"
stringA += "http://www.example.com"
print( stringA )

// stringB 不能修改
let stringB = String("Example:")
stringB += "http://www.example.com"
print( stringB )

La sortie de l'exécution du programme ci-dessus entraînera une erreur car stringB est une constante et ne peut pas être modifiée :

error: left side of mutating operator isn't mutable: 'stringB' is a 'let' constant
stringB += "http://www.example.com"

Interpolation de chaînes de caractères

L'interpolation de chaînes est un moyen de construire une nouvelle chaîne, qui peut inclure des constantes, des variables, des littéraux et des expressions. Chaque élément du littéral de chaîne que vous insérez est entre parenthèses précédées d'une barre oblique inverse :

import Cocoa

var varA   = 20
let constA = 100
var varC:Float = 20.0

var stringA = "\(varA) 乘于 \(constA) 等于 \(varC * 100)"
print( stringA )

La sortie de l'exécution du programme ci-dessus est :

20 乘于 100 等于 2000.0

Concaténation de chaînes

Les chaînes peuvent être concaténées à l'aide de l'opérateur+, comme montré dans l'exemple suivant :

import Cocoa

let constA = "Example:"
let constB = "http://www.example.com"

var stringA = constA + constB

print( stringA )

La sortie de l'exécution du programme ci-dessus est :

Example:http://www.example.com

Longueur de String

La longueur d'une chaîne est calculée à l'aide de la propriétéString.count, comme montré dans l'exemple suivant :

La version Swift 3 utilise String.characters.count

import Cocoa

var varA   = "www.example.com"

print( "\(varA), 长度为 \(varA.count)" )

La sortie de l'exécution du programme ci-dessus est :

www.example.com, 长度为 14

Comparaison de chaînes

Vous pouvez utiliser==pour comparer si deux chaînes sont égales :

import Cocoa

var varA   = "Hello, Swift!"
var varB   = "Hello, World!"

if varA == varB {
   print( "\(varA) 与 \(varB) 是相等的" )
} else {
   print( "\(varA) 与 \(varB) 是不相等的" )
}

La sortie de l'exécution du programme ci-dessus est :

Hello, Swift! 与 Hello, World! 是不相等的

Chaînes Unicode

Unicode est une norme internationale utilisée pour l'encodage de texte. Le type String de Swift est construit sur la base d'Unicode. Vous pouvez parcourir les encodages UTF-8 et UTF-16 dans une chaîne, comme montré dans l'exemple suivant :

import Cocoa

var unicodeString   = "Example"

print("UTF-8 编码: ")
for code in unicodeString.utf8 {
   print("\(code) ")
}

print("\n")

print("UTF-16 编码: ")
for code in unicodeString.utf16 {
   print("\(code) ")
}

La sortie de l'exécution du programme ci-dessus est :

UTF-8 编码: 
232 
143 
156 
233 
184 
159 
230 
149 
153 
231 
168 
139 
UTF-16 编码: 
33756 
40479 
25945 
31243 

Fonctions et opérateurs de chaînes de caractères

Swift prend en charge les fonctions et opérateurs de chaînes suivants :

N° de série Fonction/Opérateur & Description
1

isEmpty

Vérifie si la chaîne est vide, renvoie une valeur booléenne

2

hasPrefix(prefix: String)

Vérifie si la chaîne possède un préfixe spécifique

3

hasSuffix(suffix: String)

Vérifie si la chaîne possède un suffixe spécifique.

4

Int(String)

Convertit une chaîne numérique en entier. Exemple :

let myString: String = "256"
let myInt: Int? = Int(myString)

5

String.count

La version Swift 3 utilise String.characters.count

Calcule la longueur de la chaîne

6

utf8

Vous pouvez accéder à l'encodage UTF-8 d'une String en itérant sur sa propriété utf8

7

utf16

Vous pouvez accéder à l'encodage UTF-16 d'une String en itérant sur sa propriété utf16

8

unicodeScalars

Vous pouvez accéder à l'encodage des scalaires Unicode d'une valeur String en itérant sur sa propriété unicodeScalars.

9

+

Concatène deux chaînes et renvoie une nouvelle chaîne

10

+=

Concatène les chaînes de part et d'autre de l'opérateur et affecte la nouvelle chaîne à la variable à gauche de l'opérateur

11

==

Détermine si deux chaînes sont égales

12

<

Compare deux chaînes, en comparant les caractères des deux chaînes un par un.

13

!=

Détermine si deux chaînes ne sont pas égales.

Autres extensions