Swift String类型

2020-12-25  本文已影响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的基础用法就这些,日常开发应该够用了。

上一篇 下一篇

猜你喜欢

热点阅读