1. 構(gòu)造
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/ / 直接賦值 text = "" / / 1. 構(gòu)造方法 text = String() / / "" / / 字符串構(gòu)造 text = String( "William" ) / / "William" / / 整型構(gòu)造 text = String( 888 ) / / "888" / / 浮點(diǎn)型構(gòu)造 text = String( 8.88 ) / / "8.88" / / 字符構(gòu)造 text = String( "a" ) / / "a" / / 布爾型構(gòu)造 text = String(true) / / "true" / / 元組構(gòu)造 text = String(describing: ( 5 , 5.0 , true)) / / "(5, 5.0, true)" / / 列表構(gòu)造 text = String(describing: [ 1 , 2 , 3 , 4 ]) / / "[1, 2, 3, 4]" / / 格式化字符串 text = String( format : "Hello, %@" , "William" ) / / "Hello, William" |
2. 拼接
1
2
3
4
5
6
7
8
9
10
11
|
var text1 = "hello, " var text2 = "William" var result = text1 + text2 print (result) / / hello, William / / 3. 在字符串中插入簡(jiǎn)單值使用 \() ,類似于 Kotlin 中的 ${} var target = "Hello, \(66)" / / Hello, 66 var target2 = "Hello, \(text2)" / / Hello, William var target3 = "Hello, \(1 + 2)" / / hellow, 3 |
3. 字符
1
2
3
4
5
6
7
8
9
10
11
12
13
|
var char : Character = "e" / / "e" var char2 = Character( "e" ) / / "e" / / 占用 16 個(gè)字節(jié) var size = MemoryLayout<Character>.size / / 16 / / 字符數(shù)組 var array : [Character] = [ "W" , "i" , "l" , "l" , "i" , "a" , "m" ] / / 構(gòu)造String var newStr = String(array) / / William / / 遍歷字符串 let city = "Shanghai" for cha in city { print (cha) } |
4. 轉(zhuǎn)義符
轉(zhuǎn)義字符常用于排版
1
2
3
4
5
6
7
8
9
10
11
|
/ / \ 0 :表示空白符 / / \\:表示反斜杠 / / \t:表示制表符 / / \n:表示換行符 / / \r:表示回車符 / / \':表示單引號(hào) / / \":表示雙引號(hào) / / \u{}:用 Unicode 碼創(chuàng)建字符 var code = "\u{0068}\u{0065}\u{006c}\u{006c}\u{006f}" / / hello var escapeChar = "空白符:\0反斜杠:\\制表符:\t換行符\n回車符:\r單引號(hào):\'雙引號(hào):\"" print (escapeChar) |
5. 常用方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
/ / 字符串判空 var emptyStr = "" if emptyStr.isEmpty { print ( "string is empty" ) } if emptyStr.count = = 0 { print ( "string count is 0" ) } / / 字符串判大小,會(huì)逐個(gè)比較字符大小 let str1 = "100a" , str2 = "101a" if (str1 < str2) { print ( "str1 < str2" ) } / / 字符串判相等,會(huì)比較所有字符的位置都相等,才為相等的字符串 if (str1 = = str2) { print ( "str1 < str2" ) } / / 使用下標(biāo)訪問(wèn)字符 var indexStr = "Hello, William" / / 獲取起始下標(biāo) var startIndex: String.Index = indexStr.startIndex var endIndex: String.Index = indexStr.endIndex / / 獲取某個(gè)下標(biāo)后一個(gè)下標(biāo)對(duì)應(yīng)的字符 var afterChar = indexStr[indexStr.index(after: startIndex)] / / e / / 獲取某個(gè)下標(biāo)前一個(gè)下標(biāo)對(duì)應(yīng)的字符 var beforeChar = indexStr[indexStr.index(before: endIndex)] / / m / / ... 運(yùn)算符指定范圍,從 startIndex 向后移動(dòng) 4 位截取子串 var subStr = indexStr[startIndex...indexStr.index(startIndex, offsetBy: 4 )] / / hello / / 從endIndex 向前移動(dòng) 7 位截取子串 var subStr2 = indexStr[indexStr.index(endIndex, offsetBy: - 7 )..<endIndex] / / William / / 獲取范圍 var range = indexStr. range (of: "Hello" ) / / 追加字符串 indexStr.append(Character( "." )) indexStr.append( " append string" ) / / Hello, William. append string / / 插入單個(gè)字符到指定位置 Hello, William. # append string indexStr.insert( "#" , at: indexStr.index(startIndex, offsetBy: 15 )) / / 插入一組字符 Hello, William. - #-# append string indexStr.insert(contentsOf: [ "-" , "#" , "-" ], at: indexStr.index(startIndex, offsetBy: 15 )) / / 替換指定范圍的字符串 How are you. - #-# append string indexStr.replaceSubrange(startIndex...indexStr.index(startIndex, offsetBy: 13 ), with: "How are you" ) / / 刪除指定位置的單個(gè)字符 How are you. - #-# append strin indexStr.remove(at: indexStr.index(before: indexStr.endIndex)) / / 刪除指定范圍 - #-# append strin indexStr.removeSubrange(indexStr.startIndex...indexStr.index(indexStr.startIndex, offsetBy: 11 )) / / 刪除所有字符 "" indexStr.removeAll() / / 轉(zhuǎn)換大小寫 var uppercase = "hello, swift" .uppercased() / / HELLO, SWIFT var lowercase = "HELLO, SWIFT" .lowercased() / / hello, swift / / 檢查前后綴 var hasPrefix = uppercase.hasPrefix( "he" ) / / false var hasSuffix = lowercase.hasSuffix( "ft" ) / / true |
GitHub 源碼:StringType.playground
到此這篇關(guān)于Swift 字符串類型及常用方法詳解總結(jié)的文章就介紹到這了,更多相關(guān)Swift 字符串 內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/java_android_man/article/details/121070460