[Swift] 六、 String 的子串操作

一、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

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 的子串操作)