Swift-字符串,数组,字典

释放双眼,带上耳机,听听看~!

摘要:简单介绍下在Swift中对 字符串,数组,字典的常用操作。

字符串

  • 字符串的长度
        let string = "hello world"
// 1,字符串的遍历 ,字符串是一个结构体
for c in string.characters {
print(c)
}
// 2, 返回指定编码对应的的字节数量
//        utf8 编码(0-4)个,每个汉字的是3个字节
print(string.lengthOfBytes(using: .utf8))
// 3, 字符串长度--- 获取字符的个数
print("---(string.characters.count)----")
// 4,使用NSString中转 ( string as  "类型"  swift中的类型转换)
let ocString = string as NSString
print(ocString.length)
  • 字符串的拼接
        let name = "谁家娇妻守空房"
let age = "隔壁老王来帮忙"
let title:  String? = "大王叫我来巡山了"
let nameString  = "(name) (age) (title ?? "")"
print(nameString)
print(name + age + (title ?? ""))
  • 字符串的截取
        let titleString = "曾经的王者,如今的小弟"
// 1,转化成NSString ,强烈建议使用
let ocString = titleString as NSString
let string1 = ocString.substring(with: NSMakeRange(2, 4))
print(string1)
// 2,swift 3.0以后的新方法
// from:"字符串的起始长度"
let string2 = titleString.substring(from: "我们".endIndex)
let string3 = titleString.substring(from: "adc".endIndex)
print("-------------")
print(string2)
print(string3)
// 字符串的范围
guard  let range = titleString.range(of: "王者") else {
print("不包括字符串")
return
}
print("------------")
print(range) // 获取字符串对应的 range
print(titleString.substring(with: range))
  • 特定格式化的字符串
        let h = 7
let m = 30
let s = 0
print("(h):(m):(s)")
let dataString  = String(format: "%02d:%02d:%02d",h,m,s)
print(dataString)

数组

  • 数组的定义
        // OC使用[] 定义数组,没有@符
// 自动推导数组元素类型 [String] - >表示 数组中存放的都是String类型
let firstArray = ["hello","world"]
print(firstArray)
// 自动推导为[Int]->表示存放的都是 Int类型
// 与OC不同  基本类型都是结构体,不需要包装
let array = [1,2,3,4,5]
print(array)
// 自动推导为[CGPoint] OC中的结构体
let p = CGPoint(x: 10, y: 300)
let array2 = [p]
print(array2)
// 混合数组,自动推导为 [Any]- > 任意类型
// 实际开发中并不常用
let array3 = ["混合数组",p,1] as [Any]
print(array3)
// 空间容量不足的时候 会 *2
let array4 = [Int]()
print("(array4.capacity)")
  • 数组的遍历
// 定义数组 [String]
let array  = ["张三","李四","王二","麻子"]
//1,按照下标遍历
for i in 0..<array.count {
print(array[i])
}
//2, for in 遍历
for string in array {
print(string)
}
//3,遍历下标与内容 这里的 type 类型就是 **元组**
for type in array.enumerated() {
print("(type.offset)  (type.element)")
}
// 4,遍历下标与内容
for (n, s) in array.enumerated() {
print("(n)--(s)")
}
// 5,反序遍历
print("--------反序遍历--------")
for s in array.reversed() {
print(s)
}
// 6,反序遍历下标内容(先枚举,后反序)
for s in array.enumerated().reversed() {
print(s)
}
// 错误写法(下标和内容不一样)
for s in array.reversed().enumerated() {
print(s)
}
  • 数组的增,删,改
        // OC 中数组分可变与不可变
var array  = ["张三","李四","王二","麻子"]
// 追加元素
array.append("隔壁老王")
print(array)
// 修改元素
array[0] = "隔壁老宋"
print(array)
// 删除元素
array.remove(at: 2)
print(array)
// 特殊用法  :删除所有元素,并保留空间
array.removeAll(keepingCapacity: true)
print("(array)  (array.capacity)")
  • 数组的合并
        // 要合并的数组的类型 要保持一致
var array  = ["张三","李四","王二","麻子"] as [Any]
let array1  = ["老王","老宋","1",190] as [Any]
array += array1
print(array)

字典

  • 字典的定义
        // swift  中使用 【】定义
var dict = ["name" : "安抚啊发生f","age" : 18] as [String : Any]
print(dict)
/// 定义字典数组
let array = [["name": "afdasf","age": 19],["name":"dfa","age":10]]
print(array)
  • 可变字典的增,删,改
        var dic: [String: Any] = ["name": "王二","age":13]
// 添加,修改,都是通过key值取值,key值存在就是修改,不存在就是添加
// 添加键值对
dic["sex"] = "女"
//修改键值对
dic["name"] = "麻子"
print(dic)
// 删除
dic.removeValue(forKey: "sex")
print(dic)
  • 字典的遍历
        let dic: [String: Any] = ["name": "张三","age": 10,"sex": "妖"]
// 元组遍历
for object in dic {
print("(object.key)----(object.value)")
}
for (key, value) in dic {
print("(key)-(value)")
}
  • 字典的合并
        var dic: [String: Any] = ["name": "张三","age": 10]
let dic1: [String : Any] = ["sex": "妖","heigth": 17.0]
for object in dic1 {
// 取到 dic1 的key 值
let key = object.key
// 添加到 dic 中
dic[key] = object.value
}
print(dic)

 

人已赞赏
iOS文章

iOS WebView Webcore JavaScriptCore crash崩溃解决办法

2020-1-11 20:43:17

iOS文章

iOS navigationBar自定义返回按钮

2020-1-13 11:47:28

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索