如何在String Swift4中交换两个字符?

Kum*_*ddy 3 string ios swift4

在Swift4中,String是Collections. 您将不再在字符串上使用characters属性.

func swapCharacters(input:String,index1:Int,index2:Int)-> String { // logic to swap }

let input = "ABCDEFGH"
Run Code Online (Sandbox Code Playgroud)

如果我用(输入,3,8)调用该函数,那么输出应该是

输出: ABC H EFG D.

注意:在Swift4中,字符串是集合.

Sul*_*han 5

相当简单,因为String是一个集合:

func swapCharacters(input: String, index1: Int, index2: Int) -> String {
    var characters = Array(input)
    characters.swapAt(index1, index2)

    return String(characters)
}

let input = "ABCDEFGH"
print(swapCharacters(input: input, index1: 3, index2: 7)) //ABCHEFGD
Run Code Online (Sandbox Code Playgroud)

或者,提供类似直接阵列的操作:

extension String {
    mutating func swapAt(_ index1: Int, _ index2: Int) {
        var characters = Array(self)
        characters.swapAt(index1, index2)
        self = String(characters)
    }
}

var input = "ABCDEFGH"
input.swapAt(3, 7)
print(input) //ABCHEFGD
Run Code Online (Sandbox Code Playgroud)