Swift学习笔记-String

作者: 土豆吞噬者 | 来源:发表于2018-10-16 23:32 被阅读3次

    在Swift中,String由字符构成,而字符由一个或多个Unicode标量构成

    遍历字符串字符

    var str="秋天到了123"
    for c in str{
        print("'\(c)'")
    }
    

    判断字符串是否为空

    var str="秋天到了123"
    print(str.isEmpty)
    

    获取字符串中字符数量

    var str="秋天到了123"
    print(str.count)//7
    print(str.utf8.count)//utf8编码,15
    print(str.utf16.count)//7
    

    获取字符串子串

    注意,swift中不支持以整数索引的方式获取字符

    var str="秋天到了123"
    //获取第3个字符的索引
    let index1=str.index(str.startIndex, offsetBy: 2)
    
    //获取倒数第3个字符的索引
    let index2=str.index(str.endIndex, offsetBy: -3)
    
    //全部字符串
    print(str[...])//秋天到了123
    
    //首个字符
    print(str[str.startIndex])//秋
    
    //最后一个字符
    print(str[str.index(before: str.endIndex)])//3
    
    //指定位置字符
    print(str[index1])//到
    
    //从起始到index1的子串
    print(str[...index1])//秋天到
    print(str.prefix(through: index1))//秋天到
    
    //从起始到index1的子串,不包括index1
    print(str[..<index1])//秋天
    print(str.prefix(upTo: index1))//秋天
    
    //从index1到结尾的子串
    print(str[index1...])//到了123
    print(str.suffix(from: index1))//到了123
    
    //从index1到index2的子串
    print(str[index1...index2])//到了1
    
    //从index1到index2的子串,不包括index2
    print(str[index1..<index2])//到了
    

    十六进制表示Unicode标量

    str="\u{0031}"//1
    

    组合标量

    两个Unicode标量可以组合成一个字符

    str="\u{0061}\u{0301}"
    print(str)//á
    print(str.count)//1
    

    遍历Unicode标量

    str="123"
    for scalar in str.unicodeScalars{
        print("\(scalar.value)")
    }
    //49 50 51
    

    标准等价

    有时候两个字符串的Unicode标量虽然不一样,但是可以表示为相同字符,在swift中这两个字符串相等

    var str1="\u{0061}\u{0301}"
    var str2="\u{00e1}"
    print(str1==str2)//true
    

    相关文章

      网友评论

        本文标题:Swift学习笔记-String

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