let myString = "Test string"
let intForIndex = 0
let index = myString.startIndex.advancedBy(intForIndex)
let firstCharacter = myString[index]
斯威夫特3.x + 4.x
let myString = "Test string"
let intForIndex = 0
let index = myString.index(myString.startIndex, offsetBy: intForIndex)
let firstCharacter = myString[index]
let testText = "Test text 123"
let position = 11
let index = testText.characters.index(testText.startIndex, offsetBy: position)
let character = testText[index] // "2"
5条答案
按热度按时间lskq00tm1#
这也让我很恼火,所以我写了一个扩展来处理它:
针对Swift 4.x进行了更新:
oiopk7p52#
这并不是说订阅是不可能的,只是需要额外的一步来获得和以前一样的结果。下面,我做了和你一样的事情,但是在Swift 2.2中
斯威夫特3.x + 4.x
更新了代码,以便您可以在其他位置使用传递到“index”值的
Int
。我会不断更新这个答案,以支持最新版本的Swift。
v6ylcynt3#
swift 4示例:
voj3qocg4#
一个简单的作弊方法是将字符串转换为字符数组,您可以使用Int:
643ylb085#
ZGski答案更新为Swift 3