How to replace nth character of a string with another

string, swift

Solution

Please see NateCook answer for more details

func replace(myString: String, _ index: Int, _ newChar: Character) -> String {
    var chars = Array(myString.characters)     // gets an array of characters
    chars[index] = newChar
    let modifiedString = String(chars)
    return modifiedString
}

For Swift 5

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")

This is no longer valid and deprecated.

You can always use swift `String` with `NSString`.So you can call `NSString` function on swift `String`. By old `stringByReplacingCharactersInRange:` you can do like this

var st :String = "House"
let abc = st.bridgeToObjectiveC().stringByReplacingCharactersInRange(NSMakeRange(2,1), withString:"r") //Will give Horse

Problem

How could I replace nth character of a `String` with another one? ``` func replace(myString:String, index:Int, newCharac:Character) -> String { // Write correct code here return modifiedString } ``` For example, `replace("House", 2, "r")` should be equal to `"Horse"`.

Original source

Related problems