Swift學習筆記第三篇(字串,陣列,集合,字典)
字串String
1.宣告
// 空字串
let emptyString = ""
let anatherString = String()
if emptyString.isEmpty {
print("空的,我擦")
}
2.轉義字元
/// 轉義字元\0(空字元)、\\(反斜線)、\t(水平製表符)、\n(換行符)、\r(回車符)、\"(雙引號)、\'(單引號)。
/// Unicode 標量,寫成\u{n}(u為小寫),其中n為任意的一到八位十六進位制數。
let windoe = "\"我要成為海賊王的男人\"- 路飛"
let dorllar = "\u{24}" "$"
let blackHeart = "\u{2665}" "♥"
let sparklingHeart = "\u{1F496}" "紅色愛心"
3.字串拼接
// 可變和不可變字串
var varString = "MKJ"
varString += "CJJ"
//let letString = "MKJ111"
//letString += "CJJ"
//在 Objective-C 和 Cocoa 中,您通過選擇兩個不同的類(NSString和NSMutableString)來指定該字串是否可以被修改,Swift 中的字串是否可以修改僅通過定義的是變數還是常量來決定,實現了多種型別可變性操作的統一。
// Swift 的String型別表示特定序列的Character(字元) 型別值的集合。 每一個字元值代表一個 Unicode 字元。 您可利用for-in迴圈來遍歷字串中的每一個字元 這裡和之前的不同需要呼叫characters進行遍歷
for charater in "he is a ��".characters {
print(charater)
}
// 計算字串的數量
let countingString = "ndsd dsfdgg kjjkfdfdlf;"
print("contingString is number of \(countingString.characters.count) charaters")
// 字串拼接
let string1 = "111"
let string2 = "222"
var string3 = string1 + string2
let charater1 : Character = "?"
string3.append(charater1)
// 字串格式化 \()
let num1 = 3
print("\(num1) * 2.5 是 \(Double(num1) * 2.5)")
/*
h
e
i
s
a
��
contingString is number of 23 charaters
3 * 2.5 是 7.5
*/
4.字串比較和大小寫
// 字串比較 相等 直接用==
let quato = "一樣的"
let quate = "一樣的"
if quate == quato {
print("一樣了")
}
// 和OC一樣,判斷前字尾用hasPrefix 和 hasSuffix
// 字串大小寫
let normal = "Could help me please"
let upString = normal.uppercased()
let downString = normal.lowercased()
陣列Array
1.宣告
// 1.構造
// shoppingList變數被宣告為“字串值型別的陣列“,記作[String]。 因為這個陣列被規定只有String一種資料結構,所以只有String型別可以在其中被存取
var shoppingList:[String] = ["milk","apple"]
// swift可以自動推斷型別 因此可以不用再陣列申明之
2.獲取數量和判斷是否為空
// 2.獲取數量/判斷是否為空
print("shopping list has \(shoppingList.count) items")
if shoppingList.isEmpty {
print("array is empty")
}
3.陣列訪問,新增刪除
// 3.資料的新增刪除和訪問
shoppingList.append("reveal")
shoppingList += ["photo shop","Xmind"]
var item = shoppingList[0]
// 可以這樣直接穿插擴充
shoppingList[2...3] = ["QQ","Wechat","MTJF"]
print(shoppingList)
shoppingList.removeLast()
shoppingList.removeFirst()
print(shoppingList)
4.遍歷和列舉遍歷
// 4.遍歷
for item in shoppingList {
print(item)
}
// 需要所有資訊
/*
第1個是apple
(offset: 0, element: "apple")
第2個是QQ
(offset: 1, element: "QQ")
第3個是Wechat
(offset: 2, element: "Wechat")
第4個是MTJF
(offset: 3, element: "MTJF")
*/
for value in shoppingList.enumerated() {
print("第\(value.offset + 1)個是\(value.element)")
print(value)
}
5.repeat建立陣列
// 5.構建資料
var intArr = [Int]()
print("array of intArr has elements \(intArr.count) items")
// 重複建立
var repeatArray = [Double](repeatElement(3.0, count: 5))
print(repeatArray)
集合Set
1.無序排列
// Set集合 他是無序的
var setMusics:Set<String> = ["JJ","KK","LL","OO"]
for item in setMusics {
print(item)
}
print("\n")
/*
OO
JJ
KK
LL
*/
// 有序輸出
for item in setMusics.sorted() {
print(item)
}
/*
JJ
KK
LL
OO
*/
2.基本操作
let odd: Set = [1,3,5,7,9]
let even: Set = [0,2,4,6,8]
let deltaD: Set = [1,2,7,8]
// union 兩個集合所有元素建立一個新的集合
print(odd.union(even).sorted())
// intersect 交集
print(odd.intersection(deltaD).sorted())
// exclusiveOr 反交集
print(odd.symmetricDifference(deltaD).sorted())
// subtract 呼叫序列中和另一序列中除去相交部分建立一個新的集合
var aaa:Set = [1,2,3,4,5]
let bbb:Set = [2,3,4]
print(aaa.subtracting(bbb).sorted())
/*
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 7]
[2, 3, 5, 8, 9]
[1, 5]
*/
字典Dictionary
1.基本上和OC的一樣的 宣告如下
// 字典,這個和OC基本上一樣的
// 建立
var nameDict = Dictionary<Int,String>()
2.基本操作 更新以及建立
// 給字典更新或者建立值有下面兩種,一種直接訪問key 還有一種是通過updateValue,找不到的時候會有反饋,進下一波操作,但是實際上有則更新,沒有則新增
nameDict[1] = "mkj"
nameDict[2] = "cjj"
print(nameDict)
// 下面的方法會返回更新之前的原值
if let value = nameDict.updateValue("HEHE", forKey: 2) {
print(nameDict[2]!)
print(value)
}
// 如果存在,就和上面一樣返回原值,if判斷成立,更新舊值,但是沒有的情況下返回就是nil,不能複製給let,因此if失敗,同樣新增新的key value,但是if走失敗的邏輯
if let value = nameDict.updateValue("MEILE", forKey: 0) {
print(nameDict[0]!)
}
else
{
print("不存在")
}
print(nameDict)
// removeValueForKey 同理
/*
[2: "cjj", 1: "mkj"]
HEHE
cjj
不存在
[2: "HEHE", 0: "MEILE", 1: "mkj"]
*/
相關文章
- Swift - 陣列、字典、集合Swift陣列
- Swift學習筆記(二十四)——常量陣列和常量字典Swift筆記陣列
- 《從零開始學Swift》學習筆記(Day 17)——Swift中陣列集合Swift筆記陣列
- swift 學習筆記之陣列Swift筆記陣列
- 《從零開始學Swift》學習筆記(Day 16)——字典集合Swift筆記
- Swift學習筆記(二十)——陣列的基本操作Swift筆記陣列
- Swift學習筆記(二十一)——字典Swift筆記
- JS陣列學習筆記JS陣列筆記
- Swift學習筆記(二十二)——字典的基本操作Swift筆記
- OC中的陣列、字典、集合陣列
- 學習筆記——陣列方法整理筆記陣列
- Java學習筆記之陣列Java筆記陣列
- 學習筆記----樹狀陣列筆記陣列
- 學習筆記----字尾陣列筆記陣列
- 字尾陣列 學習筆記陣列筆記
- 字尾陣列學習筆記陣列筆記
- Java學習筆記——陣列練習(七)Java筆記陣列
- Java 學習筆記 二維陣列和物件陣列Java筆記陣列物件
- 【C#學習筆記】陣列使用C#筆記陣列
- Perl學習筆記(五)——關聯陣列筆記陣列
- Object C學習筆記11-陣列Object筆記陣列
- Redis學習筆記(三) 字典Redis筆記
- go 學習筆記---map(字典)Go筆記
- swift學習筆記《1》Swift筆記
- swift學習筆記《4》Swift筆記
- 字串學習筆記字串筆記
- JavaScript 學習筆記 - 多維陣列變為一維陣列JavaScript筆記陣列
- Java 集合學習筆記Java筆記
- swift學習筆記《2》-swift語法Swift筆記
- 《從零開始學Swift》學習筆記(Day 24)——列舉Swift筆記
- 飛機的 PHP 學習筆記五:陣列PHP筆記陣列
- JavaScript學習筆記(二)——函式和陣列JavaScript筆記函式陣列
- 【numpy學習筆記】陣列的切片,索引,迭代筆記陣列索引
- Solidity語言學習筆記————12、陣列Solid筆記陣列
- iOS 字典轉陣列,陣列轉字典iOS陣列
- 字典--Python學習筆記(五)Python筆記
- swift學習筆記《3》-技巧Swift筆記
- Swift進階學習筆記Swift筆記