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

时间:2017-12-26 17:42:13

标签: ios string swift4

  

在   Swift4,字符串是集合。 您将不再使用   字符串上的字符属性。

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

let input = "ABCDEFGH"

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

输出:ABC H EFG D

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

2 个答案:

答案 0 :(得分: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

或者,提供类似于数组的直接操作:

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

答案 1 :(得分:-2)

你的问题没有意义。 Swift中的字符串未被Int索引。你需要先弄清楚 Character 到底是什么(扩展字形集群)。然后你需要弄清楚为什么Int不能用作Strings的索引。然后你就可以提出真正的问题。在这里阅读:

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/StringsAndCharacters.html