如何在 Swift 中正确使用子串 (substring)?String.Index 和 Range 的问题
大家好!我最近开始学习 Swift,遇到了从字符串中获取子串的问题。在其他语言中,比如 Python 或 JavaScript,这非常简单:`"Hello"[0:4]` 或 `"Hello".substring(0, 4)`。但在 Swift 中,我遇到了一些奇怪的东西——`String.Index`、`Range`,以及像 `prefix()`、`suffix()`、`dropFirst()` 这样的方法。
这是一个我无法正常工作的示例:
```swift
let text = "Привет, мир!"
let substring = text[0...5] // 错误:'subscript(_:)' is unavailable
```
我尝试按照习惯的方式去做,但编译器报错。后来我了解到,在 Swift 中不能直接使用整数作为字符串索引,因为字符可能有不同的长度(例如 emoji)。但如何获取前 5 个字符或从第 3 到第 7 个字符的范围呢?
我尝试了这样的代码:
```swift
let startIndex = text.index(text.startIndex, offsetBy: 0)
let endIndex = text.index(text.startIndex, offsetBy: 5)
let range = startIndex..