美文网首页
Swift 字符串索引访问和修改字符串

Swift 字符串索引访问和修改字符串

作者: _发强 | 来源:发表于2021-07-28 00:42 被阅读0次

字符串索引

注意,在 Swift 中,字符串的下标并不是 Int 类型,所以不能用 1234 这样的下标来进行获取。
  • 使用 index(before:) 和 index(after:) 方法来访问给定索引的前后
  • 要访问给定索引更远的索引, 可以使用 index(_:offsetBy:)
  • 使用 indices 属性来访问字符串中每个字符的索引
let str = "Guten Tag!"
str[str.startIndex]
str[str.index(after: str.startIndex)]
// 这里要注意,str[str.endIndex] 是已经越界了,
// 要获取最后一个字符串,通过下面方法
str[str.index(before: str.endIndex)]

let index = str.index(str.startIndex, offsetBy: 7) // 从第一个开始但不包括,往后数第7位
str[index]
运行结果

插入字符串

var hello = "hello"

// 插入单个字符
hello.insert("!", at: hello.endIndex)

// 插入字符串
hello.insert(contentsOf: " World", at: hello.index(before: hello.endIndex))
示例代码

删除字符串

引用上文中的字符串

// 删除单个字符串
hello.remove(at: hello.index(before: hello.endIndex))
hello

// 删除字符区间
let range = hello.index(hello.endIndex, offsetBy: -6)..<hello.endIndex
hello.removeSubrange(range)

image.png

字符串截取

这里有一个 SubString(子字符串) 的类型概念,

SubString,拥有大部分String 的属性.
SubString 会重用 String 的一部分内存, 比较省内存
也就是说, SubString 并没有重新创建一个对象, 而是把指针指向了 String 内存中,当前内容所在的位置。

示例:
逗号分隔,然后分别获取前后内容。

let helloWorld = "Hello,World!"
// 先获取 逗号的下标。  ?? 表示如果前面的表达式为 nil 则返回后面的结果。
let i = helloWorld.firstIndex(of: ",") ?? helloWorld.endIndex  

// 获取"," 之前的内容, ..< 是区间运算符,(..<3  表示获取 3之前的区间,不包括3)
let beginning = helloWorld[..<i]    // beginning 在这里就属于 SubString 类型。

// 获取","之后的区间, 注意,这里只是获取到了区间,
let endRange = helloWorld.index(after: i)..<helloWorld.endIndex  
let end = helloWorld[endRange]  // end 也是属于 SubString 类型, 

//这里就直接用初始化器语法 转换成了 String 类型。 
String(beginning)   // 属于String 类型 , 
String(end)  

字符串比较

  • == 和 !=
  • 前缀比较(hasPrefix)
  • 后缀比较(hasSuffix)
let helloWorld = "Hello,World!"
// 前缀比较
helloWorld.hasPrefix("Hello")

//后缀比较
helloWorld.hasSuffix("World")

相关文章

  • Swift 字符串索引访问和修改字符串

    字符串索引 注意,在 Swift 中,字符串的下标并不是 Int 类型,所以不能用 1234 这样的下标来进行获取...

  • 字符串基础语法

    索引访问 字符串[索引] 切片访问字符串[开始,结束,步长] 判断字符串是否只包含空格 字符串.isspace...

  • python 字符串

    字符串操作 + 字符串连接操作 * 字符串复制操作 [] 字符串索引 通过索引访问指定位置的字符,索引从头(0)...

  • 访问和修改字符串

    我们可以通过调用方法,属性或者下标去访问或者修改字符串。 字符串索引 每一个字符串都有一个相关联的索引类型...

  • 元组

    元组 序列:列表、字符串、元组 访问(通过索引访问) 修改 元组一旦声明就不能修改和删除。 同时遍历两个列表 zi...

  • python函数知识归纳笔记(2)

    字符串相关操作 字符串连接 字符串赋值 [索引值] 字符串通过索引访问位置 从0开始 [::] 字符串取片操作,实...

  • 使用索引访问和修改字符串

    今天继续学习了极客时间 张杰 老师的关于 Swift 的课程,感觉讲的很基础很慢。不过,也只能耐心的学习了。毕竟有...

  • day004_python字符串、字典和集合

    1. 字符串 概念① 里面存储字符类型的 不可变的 序列 容器 访问字符串① 索引(1) 语法:字符串[索引]② ...

  • 05-字符串的操作

    字符串的操作方法 [] 字符串索引操作,通过索引访问指定位置的字符,索引从0开始 [::] 字符串取片操作完整格式...

  • 如何使用索引访问和修改字符串

    字符串索引 每一个String值都有相关的索引类型, String.Index , 他相当于每个 Characte...

网友评论

      本文标题:Swift 字符串索引访问和修改字符串

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