Avatar ·

如何在 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..