美文网首页
[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