作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
如何用另一个字符替换 String
的第 nth 个字符?
func replace(myString:String, index:Int, newCharac:Character) -> String {
// Write correct code here
return modifiedString
}
例如,replace("House", 2, "r")
应该等于 "Horse"
。
最佳答案
使用 NSString
方法的解决方案对于任何具有多字节 Unicode 字符的字符串都将失败。以下是解决该问题的两种 Swift 原生方法:
您可以利用 String
是 Character
序列的事实将字符串转换为数组,修改它,然后将数组转换回:
func replace(myString: String, _ index: Int, _ newChar: Character) -> String {
var chars = Array(myString) // gets an array of characters
chars[index] = newChar
let modifiedString = String(chars)
return modifiedString
}
replace("House", 2, "r")
// Horse
或者,您可以自己单步执行字符串:
func replace(myString: String, _ index: Int, _ newChar: Character) -> String {
var modifiedString = String()
for (i, char) in myString.characters.enumerate() {
modifiedString += String((i == index) ? newChar : char)
}
return modifiedString
}
因为它们完全在 Swift 中,所以它们都是 Unicode 安全的:
replace("🏠🏡🏠🏡🏠", 2, "🐴")
// 🏠🏡🐴🏡🏠
关于string - 如何用另一个替换字符串的第n个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24789515/
我是一名优秀的程序员,十分优秀!