美文网首页
Swift String类型

Swift String类型

作者: 本帅不良 | 来源:发表于2020-12-25 16:08 被阅读0次

    swift 5

    Swift中字符串是由 Unicode 组成,但是不能把 Unicode组成的字符串的子串看做 Unicode 字符,而是把它们拆分成 Unicode 字素。我们不能像数组中那样使用整数作为下标索引,因为会遇到有的字素是由多个字符组成的情况,这样会把一个完整语义的字素拆成两个字符,从而改变了原意。
    出自 陈刚 <Swift开发手册 技巧与实战>


    所以 Swift 中 String 用另一个类型 String.Index 来索引
    下面介绍下 Swift 中 String 的最基本用法

    1、查找元素在子串中的索引

    var num = "123.456"
    let index = num.firstIndex(of: ".") 
    
    结果1
    从运行结果我们可以看出String.Index并非 Int 类型,无法简单的使用+1-1来获取邻近索引

    2、截取字符串

    var num = "123.456"
    if let index = num.firstIndex(of: ".") {
        let num1 = num[num.startIndex..<index]
    }
    
    结果2

    截取字符串需要借助索引

    3、索引偏移

    var num = "123.456"
    if let index = num.firstIndex(of: ".") {
        let num1 = num[num.startIndex..<index]
        //索引偏移【向右偏移一位】
        let index1 = num.index(index, offsetBy: 1)
        let num2 = num[index1..<num.endIndex]
    }
    
    结果3

    4、子串替换

    var num = "123.456"
    if let index = num.firstIndex(of: ".") {
        let num1 = num[num.startIndex..<index]
        let index1 = num.index(index, offsetBy: 1)
        let num2 = num[index1..<num.endIndex]
        num
        num.replaceSubrange(index1..<num.endIndex, with: "789")
        num
    }
    
    结果4

    5、强制类型转换

    var num = "123.456"
    let intNum = Int(num)
    let doubleNum = Double(num)
    let floatNum = Float(num)
    let boolNum = Bool(num)
    
    var num1 = "123"
    let intNum1 = Int(num1)
    
    var num2 = "true"
    let boolNum2 = Bool(num2)
    
    结果5

    Swift 中String的基础用法就这些,日常开发应该够用了。

    相关文章

      网友评论

          本文标题:Swift String类型

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