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 Yiibai tutorials 

"""
print(stringC)

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

Hello, Swift 4!
Hello, Swift 4!
Hey this is a
example of multiple Line
string by Yiibai 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 = "Yiibai,"
let constB = ".com!"

var stringA = constA + constB
print( stringA )

執行上面範例程式碼,得到以下結果:

Yiibai,.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 "Tw511.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() 返回字串的反轉形式。