美文网首页
[Swift] 六、 String 的子串操作

[Swift] 六、 String 的子串操作

作者: Jack_King_ | 来源:发表于2020-09-06 14:11 被阅读0次

    一、Substring 类型

    • 字符串分割,截取所获得的返回值是 Substring类型
    • 子字符串重用了原字符串一部分内存空间,子字符串在做修改操作之前都不需要花费拷贝内存的操作
    • String 和Substring 都遵循了 StringProtocol 协议
    • Substring 拥有 String 大部分方法,Substring 可以转成 String 类型

    二、字符串截取获得子串

    1、使用 split 分割,获得是 Substring 类型的 Array

    var str = "Hello world!"
    // 根据 " " 把 str 分割
    var subStirngs = str.split(separator: " ")
    print("结果:\(subStirngs)")
    print("类型:\(type(of: subStirngs))")
    

    打印结果:

    结果:["Hello", "world!"]
    类型:Array<Substring>
    

    2、使用 stringIndex 截取

    var str = "Hello world!"
    // 要截取的字符串起始索引位置
    let startIndex = str.index(after: str.firstIndex(of: " ") ?? str.startIndex)
    // 要截取的字符串结束索引位置
    let lastIndex = str.firstIndex(of: "!") ?? str.endIndex
    // 使用区间运算符截取
    var subStirngs = str[startIndex ..< lastIndex]
    print("结果:\(subStirngs)")
    print("类型:\(type(of: subStirngs))")
    

    打印结果:

    结果:world
    类型:Substring
    

    三、子字符串比对

    var str = "Hello world!"
    let startIndex = str.index(after: str.firstIndex(of: " ") ?? str.startIndex)
    let lastIndex = str.firstIndex(of: "!") ?? str.endIndex
    var subStirngs = str[startIndex ..< lastIndex]
    var str2 = "world"
    var isEques = subStirngs == str2
    print("subStringsType: \(type(of: subStirngs)); \nstr2Type: \(type(of: str2)); \nvalue eques: \(isEques)")
    

    打印结果

    subStringsType: Substring; 
    str2Type: String; 
    value eques: true
    

    相关文章

      网友评论

          本文标题:[Swift] 六、 String 的子串操作

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