Swift基础02

Swift基础02

字符串,数组和字典

字符串的定义

  • var定义一个可变的字符串,用 let 定义一个不可变的字符串
  • 定义字符串的两种方法:字面量方法和初始化方法
var str = "hellowrold"
str.insert("a", atIndex: str.startIndex)
//result: "ahellowrold"

let str2 = "hello,world" //定义一个不可变的字符串
//str2.insert("a", atIndex: str.startIndex) //这句会出错

//用字面量方法定义一个空的字符串
var str3 = ""

//用初始化方法定义一个空的字符串
var str4: String = String() //创建一个空的字符串对象
str4.insert("a", atIndex: str.startIndex)

字符串的拼接

//1. 字符串和字符串的拼接
var str = "hellowrold"
var stra = "hello"
var strb = "world"
var strc = stra + strb //strc = "hello world"
strc += str

//result: strc = "helloworldahelloworld"

//2. 字符串常量和变量拼接
var strxiaowang = "xiaowang"
var age = 15
var stbd = "你好吗\(strxiaowang),你是\(age)岁吗"
print(stbd)

//3.字符串的格式化
var h = 5
var m = 5
var s = 5
let time = String(format: "%02d:%02d:%02d", h, m, s)
let time2 = String(format: "%02d:%02d:%02d", arguments: [h, m, s])

字符串的一些操作方法

var straaa = "hello,world"
//注意,以下获得的偏移值不是Int类型,不能直接拿来做运算,需要调用方法进行修改
var startIndex = straaa.startIndex //获取字符串的开始偏移值:0
var endIndex = straaa.endIndex //获取字符串的结束偏移值后一位:11
var lastIndex = endIndex.advancedBy(-1) //对偏移值进行-1运算:10
var fourth = startIndex.advancedBy(4) //对偏移值进行+4运算:4
var count = straaa.characters.count //统计字符的个数:11
//1. 截取字符串
var range = startIndex...fourth //0..<5
var straa1 = straaa.substringWithRange(range)

//2. 插入字符串
let insert = "hello"
straaa.insertContentsOf(insert.characters, at: startIndex)

//3. 替换字符串
//生成一个新的字符串之前的字符串不受影响
let strbbb = straaa.stringByReplacingOccurrencesOfString("world", withString: "xiaowang")

print(straaa)

//3. 判断它是否有前缀
let hasprefix = straaa.hasPrefix("he")

//4. 判断它是否有后缀
let hassuffix = straaa.hasSuffix("ld")

//5. 删除操作
straaa.removeRange(range)

// MARK : 字符串的比较
// 直接使用 == 或者 !=
let strcc = "hello"
let strdd = "hello"

if strcc == strdd {
    print("索得死勒")
}

数组

  • 用 var 创建一个可变数组, 用 let 创建一个不可变的数组
  • 如果我们用字面量方式创建一个空数组需要指定数据的类型
//用字面量的方式创建数组
let arr:[String] = ["hello", "world"]
var arr1:[Int] = []
arr1.append(1)

var arr2:[NSObject] = [] //表示数组可以接收任意的类型
arr2.append(1)
arr2.append("hello")

//用初始化的方法定义一个空数组
//append 是往数组最后面添加一个元素
var arr3:[String] = Array()
arr3.append("dog")
arr3.append("cat")
arr3.append("duck")
arr3.append("chicken")

//用拼接的方式生成一个新的数组
var arr4 = arr + arr3

数组的遍历

// MARK : 数组的遍历
//1. 原始的 for 循环的方式遍历数组
//在 swfit 里面,基本的运算符,需要两边都加空格。
for var i = 0; i < arr3.count; i++ {
    print(arr3[i])
}

//2. 用 for in 的方式遍历数组
for item in arr3 {
    print(item)
}

//3. 用 enumerate() 来遍历数组
//可以同时拿到 index 的 value
for item in arr3.enumerate() {  //enumerate是一个结构体,有两个元素
// item.index 元素的索引
// item.element 元素的值
    print("index:\(item.index), value:\(item.element)")
}

//4. 数组的倒序遍历
for item in arr3.reverse() {
    print("====\(item)")
}

for item in arr3.reverse().enumerate() {
    // item.index
    // item.element
    print("index:\(item.index), value:\(item.element)")
}

//5. 生成一个倒序的数组
//arr3.reverse()不会改变arr3的顺序,会新建一个数组对象
let reversArr3 = Array(arr3.reverse())

数组的操作

//增
arr3.append("goat")

//删
let remoed = arr3.removeAtIndex(2)

//改
arr3[0] = "cow"
print(arr3)

//查
let third = arr3[2]
let count = arr3.count

字典的定义

  • 用 let 创建一个不可变的字典,用 var 创建一个可变的字典
//1. 用字面量的方式创建一个字典
var dic = [1:"dog", 2: "cat", 3: "goat", 4: "duck"]
//用字面量的方式创建一个空的字典,需要先指定类型。[]里面需要加一个 :
var dic1:[Int: String] = [:]

//2. 用初始化的方式,来创建一个字典
var dic2:[NSObject: NSObject] = Dictionary()
dic2["1"] = "dog"
dic2["2"] = "cat"
dic2["3"] = "duck"
print(dic2)

字典的遍历

//MARK : 字典的遍历
//因为字典是无序的,所以通过以下方式无法遍历
//for var i = 0; i < dic.count; i++ {
// print(<#T##items: Any...##Any#>)
//}

//1. 用 for in 的方式来遍历字典
for (key, value) in dic {
    print("key: \(key), value:\(value)")
}

//MARK : 字典的 keys 和 values
let keys = Array(dic.keys)
let arrays = Array(dic.values)

字典的操作

//MARK :字典的操作
//增
dic[5] = "snake"

//删
dic[5] = nil

//改
dic[1] = "bird"
print(dic)

//查
print(dic[6])

你可能感兴趣的:(swift)