[Swift] 五、String 索引操作

一、String.Index

  • String 值的索引是 StringIndex 类型,不是 Int 类型
  • index 不是字符串下标参数, 而是字符所在字符串中的位置
  • startIndex:非空字符串中第一个 character的位置
  • endIndex:字符串的“超过结尾”的位置; 也就是说比位置大一
  • 若字符串为空,则 startIndex 与 endIndex相等

二、访问字符串中的字符

1、获取字符串中第一个字符

var str = "Hello word!"
str[str.startIndex]  // 输出:H

2、获取第二个字符

var str = "Hello word!"
str[str.index(str.startIndex, offsetBy: 1)]  // 输出:e

3、获取字符串中最后一个字符

var str = "Hello word!"
str[str.index(before: str.endIndex)]  // 输出:!

因为str.endIndex指向的是最后一位字符的某便位置,所以需要使用index(before:)方法获取最后一位有效字符

三、插入操作

1、使用 insert( , at:) 插入一个字符

var str = "Hello"
str.insert("!", at: str.endIndex) // 输出:Hello!

2、使用 insert(contentsOf:, at:) 插入一个字符串

var str = "Hello!"
str.insert(contentsOf:"world", at: str.index(before: str.endIndex)) // 输出:Hello world! 

四、删除操作
1、使用 remove(at: ) 移除某个字符

var str = "Hello World!"
str.remove(at: str.index(before: str.endIndex)) // 输出:!
print(str)  // 输出:Hello World

打印结果

Hello World

2、移除一段特定的字符串

var str = "Hello word!"
let range = str.index(str.startIndex, offsetBy: 5)..<str.endIndex // 输出:{{_rawBits 327937}, {_rawBits 720897}}
str.removeSubrange(range)  // 输出:Hello
print(str)  // 输出:Hello

打印结果

Hello
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。