生成随机字符串而不重复swift

时间:2017-05-06 01:57:19

标签: swift string random repeat

我希望函数生成随机字符串而不重复。 例如,此功能可能会打印:ABCC

func randomString(length:Int) -> String {
let charSet = "ABCDEF"
var c = charSet.characters.map { String($0) }
var s:String = ""
for _ in (1...length) {
    s.append(c[Int(arc4random()) % c.count])
}
return s
} print(randomString(length: 4))

我想要打印随机唯一字符串,例如:ABCD

2 个答案:

答案 0 :(得分:2)

import GameplayKit

func randomString(length : Int) -> String {
    let charSet = Array("ABCDEFGHIJKLMNOPQRSTUVWXYZ".characters)
    let shuffled = GKRandomSource.sharedRandom().arrayByShufflingObjects(in: charSet) as! [Character]
    let array = shuffled.prefix(length)
    return String(array)
}

print(randomString(length: 4))

答案 1 :(得分:0)

func randomString(length: Int) -> String {
    let charSet = "ABCDEF"
    var charSetArray = charSet.characters.map { String($0) }
    var randArray: [String] = []
    while charSetArray.count > 0 {
        let i = Int(arc4random_uniform(UInt32(charSetArray.count)))
        randArray.append(charSetArray[i])
        charSetArray.remove(at: i)
    }
    var output: String = ""
    for i in 0..<length {
        output.append(randArray[i])
    }
    return output
}