Swift學(xué)習(xí)筆記3-字符串、數(shù)組、字典

字符串

在 Swift 中絕大多數(shù)的情況下,推薦使用 String 類型

使用 String 的原因

  • String 是一個結(jié)構(gòu)體,性能更高
    • String 目前具有了絕大多數(shù) NSString 的功能
    • String 支持直接遍歷
  • NSString 是一個 OC 對象,性能略差
  • Swift 提供了 StringNSString 之間的無縫轉(zhuǎn)換

遍歷字符串

let str = "我要飛的更High"

for s in str {
    print(s)
}

字符串拼接

let str1 = "zhangsan"
let str2 = "lisi"
let i = 10

print(str1 + str2)
print("\(str1) \(str2) \(i)")
  • 階段性小結(jié)
    • 直接在 "" 中使用 \(變量名) 的方式可以快速拼接字符串
    • 小伙伴們再也不要考慮 stringWithFormat

格式化字符串

for _ in 0...10 {
    let str = String(format: "zhangsan - %04d", arguments: [arc4random_uniform(100)])
    print(str)
}
  • 階段性小結(jié)
    • 在實際開發(fā)中,如果需要指定字符串格式,可以使用 String(format:...) 的方式
    • 注意:后面的參數(shù)需要放在一個數(shù)組中

String & Range 的結(jié)合

以下是超級費(fèi)勁的代碼

let str: String = "我要飛的更High"

var subStr = str.substringWithRange(Range<String.Index>(start: str.startIndex, end: str.endIndex))
print(subStr)

建議寫法

let str1: NSString = "我要飛的更High"
print(str1.substringWithRange(NSMakeRange(0, 3)))

數(shù)組

簡單體驗

let arr = ["zhangsan", "lisi"]
print(arr)

// 遍歷每一個元素
for a in arr {
    print(a)
}

// 像 OC 一樣打印
print(arr as NSArray)

數(shù)組中保存的對象類型

// 數(shù)組中保存的都是字符串
let arr = ["zhangsan", "lisi"]

// 數(shù)組中保存的是 NSObject
let arr1 = ["zhangsan", 1]
  • 階段性小結(jié)
    • 數(shù)組使用 [] 定義,這一點與 OC 相同
    • 如果初始化時,所有內(nèi)容類型一致,擇數(shù)組中保存的是該類型的內(nèi)容
    • 如果初始化時,所有內(nèi)容類型不一致,擇數(shù)組中保存的是 NSObject

常見數(shù)組操作

// 定義只能保存字符串類型數(shù)組
var array: [String]

// 初始化數(shù)組
array = ["zhangsan"]

// 添加元素
array.append("lisi")

print(array)

// 刪除元素
array.removeAtIndex(1)
print(array)

// 刪除所有元素
array.removeAll(keepCapacity: true)
print(array.capacity)

// 注意數(shù)組容量的變化
for i in 0..<10 {
    array.append("\(i)")
    print("\(array) --- \(array.capacity)")
}

// 實例化新的數(shù)組
var array2 = [String]()
array2.append("1")
array2.append("2")

// 拼接數(shù)組
array += array2

print(array)
  • 階段性小結(jié)
    • 如果定義數(shù)組時指定了保存對象的類型,擇不能向數(shù)組中添加其他類型的內(nèi)容
    • 可以使用 [String]()
    • let 定義的數(shù)組是不可變的
    • var 定義的數(shù)組是可變的

字典

/// 定義并實例化字典
var dict = [String: AnyObject]()

dict["name"] = "zhangsan"
dict["age"] = 18

print(dict)

// 設(shè)置相同 key,之前的數(shù)值會被覆蓋
dict["name"] = "lisi"
print(dict)

// 刪除某一個 key
dict.removeValueForKey("age")
print(dict)

dict["title"] = "manager"
print(dict)

// 遍歷字典(k, v可以隨便寫)
for (k, v) in dict {
    print("\(k) -- \(v)")
}

// 合并字典
var dict2 = ["name": "wangwu", "age": 80, "title": "boss"]
for (k, v) in dict2 {
    dict.updateValue(v, forKey: k)
}
print(dict)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容