Wie zu verwenden:
let randomString = "ABCDEF".random(length: 3)!
Der Rückgabewert ist optional, da die Länge die Länge der angegebenen Zeichenfolge überschreiten kann.
Überprüfen Sie die vollständige Umsetzung aus:
import UIKit
import PlaygroundSupport
extension MutableCollection where Indices.Iterator.Element == Index {
mutating func shuffle() {
let c = count
guard c > 1 else { return }
for (firstUnshuffled , unshuffledCount) in zip(indices, stride(from: c, to: 1, by: -1)) {
let d: IndexDistance = numericCast(arc4random_uniform(numericCast(unshuffledCount)))
guard d != 0 else { continue }
let i = index(firstUnshuffled, offsetBy: d)
swap(&self[firstUnshuffled], &self[i])
}
}
}
extension Sequence {
func shuffled() -> [Iterator.Element] {
var result = Array(self)
result.shuffle()
return result
}
}
extension String {
func random(length: Int) -> String? {
let uniqueCharacters = Array(Set(characters.map({ String($0) })))
guard length <= uniqueCharacters.count else { return nil }
guard length > 0 else { return nil }
return uniqueCharacters[0..<length].shuffled().joined()
}
}
Schon mal ein Kartenspiel spielen? Haben Sie schon einmal von dem Begriff "Shuffle" gehört? Mische die Charaktere und erledige die ersten vier. – matt
http://stackoverflow.com/questions/27761557/shuffling-a-string-in-swift (von denen Ihre Frage wirklich nur ein Duplikat ist) – matt
oder dieses: http://stackoverflow.com/questions/26845307/ generate-random-alphanumeric-string-in-swift – iWheelBuy