2014-09-04 43 views
2
一个指数

(对不起,我的英语)如何使用斯威夫特

在我的应用程序设置字符串的字符,我需要在字符串中的某些字符设定值normaly我将使用:

var string = "This is a string" 

var i = 3 

string[i] = "a" 

但是在Swift中,我不能使用'[]'来选择一个字符,我该如何在swift中做到这一点?

回答

2

因为答案变长一点,我写了一篇关于字符串的扩展做的工作

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(字符串.length),不能因为字符在Swift中不再具有固定长度(谢谢,Swift)

+0

它给我一个错误:使用未解析的标识符'replaceRange' – 2014-09-04 20:45:12

+0

您使用的是最新的Beta版吗?因为它在Beta 7编译和工作 – 2014-09-04 20:55:55

+0

不,我使用测试版5感谢无论如何 – 2014-09-04 21:00:47