Swift字串

Swift 4中的字串是一個有序的字元集合,例如"Hello,World!"。 它們由Swift 4數據類型String表示,也是由字元類型值的集合來表示。

1. 創建字串

可以使用字串文字或創建String類的實例來創建字串,如下所示 -

// 使用String文字創建字串
var stringA = "Hello, Swift 4!"
print( stringA )

// 使用String實例創建字串
var stringB = String("Hello, Swift 4!")
print( stringB )

//多行字串
let stringC = """
Hey this is a
example of multiple Line
string by zaixian tutorials

"""
print(stringC)

編譯並執行上述代碼時,會產生以下結果 -

Hello, Swift 4!
Hello, Swift 4!
Hey this is a
example of multiple Line
string by zaixian tutorials

2. 空字元串

可以通過使用空字元串文字或創建String類的實例來創建空字元串,如下所示。還可以使用布爾屬性isEmpty檢查字串是否為空。參考以下示例代碼 -

// 使用字串文字創建空字元串
var stringA = ""

if stringA.isEmpty {
   print( "stringA is empty" )
} else {
   print( "stringA is not empty" )
}

// 使用String實例創建空字元串
let stringB = String()

if stringB.isEmpty {
   print( "stringB is empty" )
} else {
   print( "stringB is not empty" )
}

編譯並執行上述代碼時,會產生以下結果 -

stringA is empty
stringB is empty

3. 字串常量

可以通過將String分配給變數來指定是否可以修改(或可變)字串,或者通過使用let關鍵字分配常量,如下所示 -

// 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 )

編譯並執行上述代碼時,會產生以下結果 -

Playground execution failed: error: <EXPR>:10:1: error: 'String' is not
convertible to '@lvalue UInt8'
stringB + = "--Readers--"

4. 字串插值

字串插值是一種通過在字串文字中包含的值。從常量,變數,文字和運算式的混合構造新的字串值的方法。

插入到字串文字中的每個專案(變數或常量)都包含在一對括弧中,首碼為反斜杠。 下麵是一個簡單的例子 -

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

var stringA = "\(varA) times \(constA) is equal to \(varC * 100)"
print( stringA )

編譯並執行上述代碼時,會產生以下結果 -

20 times 100 is equal to 2000.0

5.字串連接

可以使用+運算符來連接兩個字串或字串和一個字元,或兩個字元。 下麵是一個簡單的例子 -

let constA = "zaixian,"
let constB = ".com!"

var stringA = constA + constB
print( stringA )

執行上面示例代碼,得到以下結果:

zaixian,.com!

6. 字串長度

Swift 4字串沒有length屬性,但可以使用全局的count()函數來計算字串中的字元數。下麵是一個簡單的例子 -

var varA = "Hello, Swift 4!"

print( "\(varA), length is \((varA.count))" )

執行上面示例代碼,得到以下結果:

Hello, Swift 4!, length is 15

7. 字串比較

可以使用==運算符來比較兩個字串變數或常量。 下麵是一個簡單的例子 -

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" )
}

執行上面示例代碼,得到以下結果:

Hello, Swift 4! and Hello, World! are not equal

8.字串迭代

字串又是swift 4中的值集合,因此我們可以使用迴圈遍曆字串。示例代碼如下 -

for chars in "xuhuhu.com" {
   print(chars, terminator: " ")
}

執行上面示例代碼,得到以下結果:

Y i i b a i . c o m

9.Unicode字串

可以通過迭代其utf8utf16屬性來訪問字串的UTF-8UTF-16表示,如以下示例所示 -

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) ")
}

編譯並執行上述代碼時,會產生以下結果 -

UTF-8 Codes:
68
111
103
63
63
63


UTF-16 Codes:
68
111
103
63
63
63

10.字串函數和運算符

Swift 4支持與字串相關的各種方法和運算符 -

編號 方法或操作符 描述
1 isEmpty 返回一個布爾值,用於確定字串是否為空。
2 hasPrefix(prefix: String) 用於檢查給定參數字串是否字存在字串首碼。
3 hasSuffix(suffix: String) 用於檢查給定參數字串是否存在字串尾碼。
4 toInt() 將數字字串值轉換為整型的函數。
5 count() 用於計算字串中字元數的全局函數。
6 utf8 返回字串的UTF-8表示的屬性。
7 utf16 用於返回字串的UTF-16表示的屬性。
8 unicodeScalars 返回字串的Unicode標量表示的屬性。
9 + 運算符連接兩個字串,或字串和字元,或兩個字元。
10 += 運算符將字串或字元附加到現有字串。
11 == 運算符確定兩個字串的相等性。
12 < 運算符執行詞典比較以確定一個字串的評估是否小於另一個字串。
13 startIndex 獲取字串起始索引的值。
14 endIndex 獲取字串結束索引的值。
15 Indices 逐個訪問許可權。即字串的所有字元,一個接一個。
16 insert("Value", at: position) 在某個位置插入值。
17 remove(at: position),removeSubrange(range) 刪除某個位置的值,或從字串中刪除一系列值。
18 reversed() 返回字串的反轉形式。

上一篇: Swift迴圈語句 下一篇: Swift字元