如何使用Swift中的索引设置字符串的字符

时间:2014-09-04 20:06:51

标签: string indexing swift

(对不起我的英文)

在我的应用程序中,我需要将字符串中的某个字符设置为正常使用的字符串:

var string = "This is a string"

var i = 3

string[i] = "a"

但是在Swift中,我无法使用' []'选择一个角色我怎么能在swift中做到?

1 个答案:

答案 0 :(得分:2)

因为答案有点长,我在String上写了一个扩展来完成这项工作

extension String {
    mutating func replaceCharacterAtIndex(index: Int, withString str: String) {
        replaceRange(Range(start: advance(self.startIndex, index), end: advance(self.startIndex, index+1)), with: str)
    }
}

var ab = "abcdefg"
ab.replaceCharacterAtIndex(3, withString: "o")
// ab now equals „abcodefg"

请注意,替换字符串中的字符不再是O(1)而是Tatget O(String.length)并且不能因为字符在Swift中不再具有固定长度(谢谢,Swift)