Swift基础-字符串

  • 字符串在任何的开发中使用都是非常频繁的
  • OC和Swift中字符串的区别
    • 在OC中字符串类型时NSString,在Swift中字符串类型是String
    • OC中字符串@"",Swift中字符串""
    • OC语言中的字符串也是以\0结尾, Swift不是
  • 使用 String 的原因
    • String 是一个结构体,性能更高
    • NSString 是一个 OC 对象,性能略差
    • String 支持直接遍历
    • Swift 提供了 String 和 NSString 之间的无缝转换
  • Swift 的String类型是值类型。
    • 如果您创建了一个新的字符串,那么当其进行常量、变量赋值操作,或在函数/方法中传递时,会进行值拷贝。
    • 任何情况下,都会对已有字符串值创建新副本,并对该新副本进行传递或赋值操作

字符的定义

  • 定义不可变字符串
let str = "hello Objective-C"
  • 定义可变字符串
var str = "hello Swift"

字符串的使用

  • 获取字符串的长度

    • 获取字符集合,再获取集合的count属性
let count = str.characters.count
  • 遍历字符串
var str = "Hello, Swift"
for c in str.characters {
    print(c)
}

字符串拼接

  • 两个字符串的拼接
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)"
  • 字符串的格式化
    • 比如时间:03:04
let min = 3
let second = 4

let time = String(format: "%02d:%02d", arguments: [min, second])

字符串的截取

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

// 2.截取开始位置
let fromIndex = str.startIndex.advancedBy(3)
let header = str.substringFromIndex(fromIndex)

// 3.截取结束位置
let toIndex = str.endIndex.advancedBy(-3)
let footer = str.substringToIndex(toIndex)

// 4.截取中间的字符串
let range = Range(start: str.startIndex.advancedBy(4), end: str.endIndex.advancedBy(-4))
let middle = str.substringWithRange(range)

字符串非空判断

// "" 字符串不为nil,访问不会崩溃
    // nil : 字符串为nil,访问是会崩溃
    let addressStr = addressTV.text

    if addressStr.isEmpty {
        return
    }

你可能感兴趣的:(Swift基础-字符串)