我目前创建随机unicode字符生成的尝试失败了,例如我在其他问题here中提到的错误。它显然不像生成随机数那么简单。
问题:如何在Swift中生成随机unicode字符?
答案 0 :(得分:3)
除高代理和低代理代码之外的任何Unicode代码点 点。换句话说,整数0到D7FF和E000的范围 至10FFFF包含。
所以,我已经制作了一个小代码的代码片段。见下文。
func randomUnicodeCharacter() -> String {
let i = arc4random_uniform(1114111)
return (i > 55295 && i < 57344) ? randomUnicodeCharacter() : String(UnicodeScalar(i))
}
randomUnicodeCharacter()
let N: UInt32 = 65536
let i = arc4random_uniform(N)
var c = String(UnicodeScalar(i))
print(c, appendNewline: false)
答案 1 :(得分:0)
static func randomCharacters(withLength length: Int = 20) -> String {
let base = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
var randomString: String = ""
for _ in 0..<length {
let randomValue = arc4random_uniform(UInt32(base.characters.count))
randomString += "\(base[base.index(base.startIndex, offsetBy: Int(randomValue))])"
}
return randomString
}
您可以在此处修改长度(Int)并将其用于生成随机字符。