Skip to content

Latest commit

 

History

History
122 lines (88 loc) · 2.67 KB

File metadata and controls

122 lines (88 loc) · 2.67 KB

Swift-字符串


Update更新:2016524日 By {MISSAJJ琴瑟静听}
此Swift基础语言笔记融合了不同版本的课程笔记
希望能帮助童鞋们巩固记忆!

字符串的介绍

  • 字符串在任何的开发中使用都是非常频繁的
  • OC和Swift中字符串的区别
    • 在OC中字符串类型时NSString,在Swift中字符串类型是String
    • OC中字符串@"",Swift中字符串""
    • 在 Swift 中绝大多数的情况下,推荐使用 String 类型

使用 String 的原因

  • String 是一个结构体,性能更高
    • String 目前具有了绝大多数 NSString 的功能
    • String 支持直接遍历
  • NSString 是一个 OC 对象,性能略差
  • Swift 提供了 StringNSString 之间的无缝转换

遍历字符串

let str = "我要飞的更High"

for s in str {
    print(s)
}


// 字符串遍历
var str = "Hello, Swift"
for c in str.characters {
    print(c)
}

字符串拼接

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

print(str1 + str2)
print("\(str1) \(str2) \(i)")

//两个字符串的拼接
let str1 = "Hello"
let str2 = "World"
let str3 = str1 + str2

//字符串和其他数据类型的拼接
let name = "why"
let age = 18

let info = "my name is \(name), age is \(age)"
  • 阶段性小结
    • 直接在 "" 中使用 \(变量名) 的方式可以快速拼接字符串
    • 小伙伴们再也不要考虑 stringWithFormat

格式化字符串

for _ in 0...10 {
    let str = String(format: "zhangsan - %04d", arguments: [arc4random_uniform(100)])
    print(str)
}


//时间格式化:03:04
let min = 3
let second = 4

let time = String(format: "%02d:%02d", arguments: [min, second])
  • 阶段性小结
    • 在实际开发中,如果需要指定字符串格式,可以使用 String(format:...) 的方式
    • 注意:后面的参数需要放在一个数组中

字符串的截取

  • Swift中提供了特殊的截取方式
    • 该方式非常麻烦
    • Index非常难创建
  • 简单的方式是将String转成NSString来使用
    • 在标识符后加:as NSString即可
let myStr = "www.missajj.com"
var subStr = (myStr as NSString).substringFromIndex(4)
subStr = (myStr as NSString).substringToIndex(3)
subStr = (myStr as NSString).substringWithRange(NSRange(location: 4, length: 5))

String & Range 的结合

以下是超级费劲的代码

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)))