參考書:
The Swift Programming Language
The Swift Programming Language 中文版
軟件版本:
OS X Yosemite 10.10.3
Xcode 6.3.2
Swift 1.2
標簽:
Swift
編程學習筆記
字符串和字符(Strings and Characters)
字符串字面量(String Literals)
- 特殊字符
1.1 空字符:\0
1.2反斜杠:\
1.3 水平制表符:\t
1.4 換行符:\n
1.5 回車符:\r
1.6 雙引號:"
1.7 單引號:'
1.8 Unicode標量:\u{n},n為任意的一到八位十六進制數
println("\0")
println("\\")
println("\t")
println("a\n")
println("a\r")
println("\"")
println("\'")
println("\u{1F496}") //1F496,即一個十六進制數
代碼示例
初始化空字符串(Initializing an Empty String)
- 給變量附上空值
var emptyString = ""
- 初始化一個
String
實例
var anotherEmptyString = String()
-
String
類中,有isEmpty
屬性,可以判斷字符串是否為空,isEmpty
為Boolean
類型
字符串可變性(String Mutability)
字符串是值類型(Strings Are Value Types)
使用字符(Working with Characters)
- 聲明時標注一個
Character
類型,可以建立一個獨立的字符常量或者變量
let yenSign:Character = "¥"
計算字符數量(Counting Characters)
1.調用全局count()
函數
let unusualMenagerie = "Koala ??, Snail ??, Penguin ??, Dromedary ??"
println("unusualMenagerie has \(count(unusualMenagerie)) characters")
計算 unusualMenagerie 中的字符數量
連接字符串和字符(Concatenating Strings and Characters)
- 用
+
運算對字符串進行拼接
let string1 = "Hello"
let string2 = " there"
var welcome = string1 + string2
- 用
+=
將一個字符串添加到一個已經存在的字符串變量上
var instruction = "look over"
instruction += string2
- 用
append()
方法將一個字符添加到字符串變量的尾部
let exclamationMark:Character = "!"
welcome.append(exclamationMark)
比較字符串(Comparing Strings)
- 字符串相等,
==
直接判斷
let quotation = "我們是一樣一樣滴."
let sameQuotation = "我們是一樣一樣滴."
if quotation == sameQuotation {
println("這兩個字符串被認為是相同的")
}
- 前綴/后綴相等,調用字符串的
hasPrefix()
或者hasSuffix()
方法
let romeoAndJuliet = [
"Act 1 Scene 1: Verona, A public place",
"Act 1 Scene 2: Capulet's mansion",
"Act 1 Scene 3: A room in Capulet's mansion",
"Act 1 Scene 4: A street outside Capulet's mansion",
"Act 1 Scene 5: The Great Hall in Capulet's mansion",
"Act 2 Scene 1: Outside Capulet's mansion",
"Act 2 Scene 2: Capulet's orchard",
"Act 2 Scene 3: Outside Friar Lawrence's cell",
"Act 2 Scene 4: A street in Verona",
"Act 2 Scene 5: Capulet's mansion",
"Act 2 Scene 6: Friar Lawrence's cell"
]
var act1SceneCount = 0
for scene in romeoAndJuliet {
if scene.hasPrefix("Act 1 ") {
++act1SceneCount
}
}
println("There are \(act1SceneCount) scenes in Act 1")
var mansionCount = 0
var cellCount = 0
for scene in romeoAndJuliet {
if scene.hasSuffix("Capulet's mansion") {
++mansionCount
} else if scene.hasSuffix("Friar Lawrence's cell") {
++cellCount
}
}
大寫和小寫字符串(Uppercase and Lowercase Strings)
- 調用字符串的
uppercaseString
或者lowercaseString
屬性實現
import Foundation
let normal = "Could you help me, please?"
let shouty = normal.uppercaseString
let whispered = normal.lowercaseString
Unicode
Unicode 中每一個字符都可以被解釋為一個或多個 unicode 標量。 字符的 unicode 標量是一個唯一的21位數字(和名稱),例如U+0061表示小寫的拉丁字母A ("a"),U+1F425表示小雞表情 ("??")
Swift能夠以三種(?)Unicode兼容的方式訪問字符串的值:
- UTF-8
for codeUnit in dogString.utf8 {
print("\(codeUnit) ")
}
print("\n")
- UTF-16
for codeUnit in dogString.utf16 {
print("\(codeUnit) ")
}
print("\n")
// 68 111 103 33 55357 56374
- Unicode 標量 (Unicode Scalars)
for scalar in dogString.unicodeScalars {
print("\(scalar.value) ")
}
print("\n")