美文网首页
swift 学习之四 字符串&&字符

swift 学习之四 字符串&&字符

作者: 小白e7899 | 来源:发表于2019-11-17 10:28 被阅读0次

    字符串就是一系列字符

    在swift中,Sring类型桥接到OC的NSString类,不需要做格式转换就可以访问所有NSString的方法。不同的是String在swift中本质是结构体,而OC中NSString是对象。

    一、声明字符串

    量声明

    let str1 = "hello" // 不可变字符串

    var str2 = "world" // 可变字符串

    var str3 = "" // 空字符串
    var str4 = String() // 空字符串

    // swift中多行字符串,用的是""" ..................""", 多行字符串可以使用单引号和双引号,必须要用 \ 转义字符

    swift中字符串结构体,或者是一种值类型,因此

    let rst = str2 + str2 // 结果是  "hello world".  这样做字符串拼接真的比OC省事很多

    二、字符串操作

    1 .遍历 字符串中的字符

    for char in "hello" {

    print(char)

    // 依次打印出 h - e - l - l - o

    2. 用Character 类型 初始化字符串

    let chars: [Character] = ["h", "e", "l", "l", "o"]

    let charsStr = String(chars) // charsStr 结果为: hello

    3 字符串拼接

    let str1 = "hello" 

    var str2 = "world" // 可变字符串

    let rst = str2 + str2 // 结果是  "hello world".  这样做字符串拼接真的比OC省事很多

    4 插入

    let myInt = 4

    let myStr = "\(myInt) -----------Double(myInt) * 1.1" // 结果: 4 -----------4.4

    注意:作为插值写在()中的表达式不能包含非转义字符的"或\,并且不能包办回车或者换行符。

    5. 统计 

    mystr = "message"

    let cnt = mystr.count   // 与OC中length 差不多

    6. 字符串访问

    索引(下标)访问:每个String类型都是String.Index,他相当于每个字符在字符串中的位置

    startIndex、endIndex表示字符的开始、结束位置,当字符串为空,这两个值是一样的。

    还有:index(before:)、index(after:)、index(_:offsetBy:)

    let greeting = "Guten Tag!"

    greeting[greeting.startIndex] // G

    greeting[greeting.index(before: greeting.endIndex)] // !

    greeting[greeting.index(after: greeting.startIndex)] // u

    let index = greeting.index(greeting.startIndex, offsetBy: 7) 9 greeting[index] // a

    greeting[greeting.endIndex] // 错误,因为越界了

    greeting.index(after: endIndex) // 错误, 因为越界了

    // 使用:indices 可以方位字符串的每个索引

    for index in greeting.indices{

    print("\(greeting[index]) ", terminator: "")

    }

    // 输出: G u t e n T a g !

    注意:这些方法在集合类型也是使用,Array、Dictionary、Set等

    7、 插入、删除
    要在字符串中插入值使用insert(_:at:) 或 insert(contentsOf:at:), 对应的删除方法有:remove(at:)或removeSubrange(_:)

    var welcome = "hello" 

     welcome.insert("!", at: welcome.endIndex) 

     // welcome 的值 "hello!" 

    welcome.insert(contentsOf: " there", at: welcome.index(before 6  : welcome.endIndex))

    // welcome 的值 "hello there!" 

    welcome.remove(at: welcome.index(before: welcome.endIndex)) //  hello there

    let range = welcome.index(welcome.endIndex, offsetBy: -6)..< welcome.endIndex

    welcome.removeSubrange(range) // hello

    8 子字符串

    let greeting = "Hello, world!"

    let index = greeting.index(of: ",") ?? greeting.endIndex

    let beginning = greeting[..<index]

    let newString = String(beginning)

    9 字符串对比可以直接使用"==", 其他方法可以参考OC的NSString的方法  

    以什么开始:hasPrefix(_:)

    以什么结束:hasSuffix(_:)

    相关文章

      网友评论

          本文标题:swift 学习之四 字符串&&字符

          本文链接:https://www.haomeiwen.com/subject/ghtabctx.html