Swift_学习笔记_字符串、数组、字典

来源:互联网 发布:免费tk域名申请 编辑:程序博客网 时间:2024/05/17 01:32

字符串

转义字符

  • \0(空字符)、\\(反斜扛)、\t(水平制表符)、\n(换行符)、\r(回车符)、\”(双引号)、\’(单引号)
  • 单字节Unicode标量,写成\u{nn},其中nn为两位十六进制数
  • 双字节Unicode标量,写成\u{nnnn},其中nnnn为四位十六进制数
var ch = "\u{56}\u{5355}\t\u{9501}\nhello"print(ch)// 经过测试{}内最成为五位

字符串拼接

  • 字符串可以使用加号进行字符串的拼接
  • 可以采用”append()”方法来拼接字符串
var str1 = "hello"let str2 = "word"print(str1+str2)// hellowordstr2.append("ASCJSDK")print(str2)// wordASCJSDK

字符串与其它数据类型的拼接

字符串与其它数据类型的拼接(“\()”)又可以成为字符串的插值操作

var str1 = "hello"var str2 = "\(str1),Swift语言"print(str2)// hello,Swift语言

字符串相关操作

判断是否为空

  • 可以使用”.isEmpty”来判断
  • 可以使用”.characters.count”根据字符串个数进行判断

比较字符串是否相等

  • 可以使用”==”来判定
  • 字符串的比较是逐位进行比较,从首位开始,直到两个字符不相同为止。
  • 最终返回的是Unicode编码值比较的结果
var str1 = "hello"var str2 = "hellp"print(str1<str2)// true

判断字符串的前缀和后缀

  • 判断字符串的前缀是否是某个字符串的方法
var str2 = "hellp"str2.hasPrefix("he") // true
  • 判断字符串的后缀是否是某个字符串的方法
var str2 = "hellp"str2.hasSuffix("p") // true

将字符串转化为大写或者小写

  • 将字符串全部转化为大写:uppercased()
  • 将字符串全部转化为小写:lowercased()
var str2 = "Hellp"str2.uppercased() //HELLPstr2.lowercased() // hellp

与其它数据类型转换

  • 其它数据类型转化为字符串,使用插值操作就可以
  • 字符串转化为Int/Float类型
var str2 = "12"var ss:Int? = Int(str2)print(ss!) // 12var str2 = "12.1"var ss:Float? = Float(str2)print(ss!) // 12.1

数组

数组的声明

var array = ["你好","欢迎","慢走","不送"]var array1:[String]array1 = []var array2:[String] = []var array3 = [String]()var array4 = Array<String>()
  • 需要对数组进行初始化,在初始化是可以进行赋值元素,也可直接使用”[]”表示一个空数组
  • 必须指定元素类型,可以显示指定,也可以通过初始化,让编译器识别出类型
// 错误的写法var array5 = []array5.append("aaaa")

数组元素的访问和修改

  • 访问可以根据下标进行访问
  • 可以通过数组的个数判断数组是否为空
  • 可以利用isEmpty属性(布尔值)进行判断
  • 元素的修改
// 修改单个元素array[0] = "hello"print(array)// ["hello", "欢迎", "慢走", "不送"]// 修改多个元素array[0...2] = ["hello","welcome","wait"]print(array)// ["hello", "welcome", "wait", "不送"]

数组的遍历

  • for-in循环进行数组的遍历
  • for循环被废弃
var array = ["你好","欢迎","慢走","不送"]for index in 0..<array.count {    print("index:\(index)  value:\(array[index])")}// index:0  value:你好// index:1  value:欢迎// index:2  value:慢走// index:3  value:不送for value in array {    print("value:\(value)")}// value:你好// value:欢迎// value:慢走// value:不送

数组元素的插入和删除

插入元素

  • 在指定位置插入元素 insert(_ newElement: Element, at i: Int)方法
var array = ["你好","欢迎","慢走","不送"]array.insert("稍等", at: 2)print(array)// ["你好", "欢迎", "稍等", "慢走", "不送"]
  • 在数组末尾添加元素:func append(_ newElement: Element)
var array = ["你好","欢迎","慢走","不送"]array.append("稍等")print(array)// ["你好", "欢迎", "慢走", "不送", "稍等"]
  • 在数组末尾添加一个数组:+= ,数组的拼接
var array = ["你好","欢迎","慢走","不送"]array += ["一起"]print(array)// ["你好", "欢迎", "慢走", "不送", "一起"]

删除元素

  • 删除指定位置的元素:func remove(at index: Int) -> Element
var array = ["你好","欢迎","慢走","不送"]array.remove(at: 1)print(array)//["你好", "慢走", "不送"]
  • 删除数组中末尾的元素:removeLast()
var array = ["你好","欢迎","慢走","不送"]array.removeLast()print(array)// ["你好", "欢迎", "慢走"]
  • 删除数组中首位的元素:removeLast()
var array = ["你好","欢迎","慢走","不送"]array.removeFirst()print(array)// ["欢迎", "慢走", "不送"]
  • 删除数组中后几位的元素:func removeLast(_ n: Int)
var array = ["你好","欢迎","慢走","不送"]array.removeLast(2)print(array)//["你好", "欢迎"]
  • 删除数组中前几位的元素:func removeFirst(_ n: Int)
var array = ["你好","欢迎","慢走","不送"]array.removeFirst(2)print(array)// ["慢走", "不送"]

字典

字典的声明

  • 键值对的键和值必须是显示声明
  • 声明完字典需要初始化
  • 字典的key值的类型必须是可以被哈希化的(基本数据类型和可被哈希化的类型)
var dict1 = [1:1,2:2,3:3]var dict2:Dictionary<String,String> = [:]var dict3 = Dictionary<String,String>()var dict4 = [String:String]()

字典元素的访问和修改

var dict = ["key1":"iOS","Key2":"Android","key3":"Java","key4":"Html"]

字典元素的访问

print("\(dict["key1"])") //Optional("iOS")print("\(dict["key5"])") // nil

字典元素的修改

  • 直接进行元素的修改
dict["key5"] = "Swift"// 如果dict内存在key5的键值对,则修改原本的元素// 如果不存在则添加此键值对
  • 通过updateValue(forKey:)进行修改,
dict.updateValue("jQuery", forKey: "key6")// 存在key6则修改,不存在则添加
  • 通过removeValue(forKey: )删除特定键值对
dict.removeValue(forKey: "key6") //jQuery// 该方法返回值为该键值对的Value值

字典的遍历

遍历字典的键值对

var dict = ["key1":"iOS","Key2":"Android","key3":"Java","key4":"Html"]for (key,value) in dict {    print("key:\(key),value:\(value)")}// key:key3,value:Java// key:key4,value:Html// key:Key2,value:Android// key:key1,value:iOS

遍历字典的键值

for key in dict.keys {    print("key:\(key)")}// key:key3// key:key4// key:Key2// key:key1

遍历字典所有的值

for value in dict.values {    print("value:\(value)")}// value:Java// value:Html// value:Android// value:iOS