如何在Swift中生成随机unicode字符?

时间:2015-08-22 14:51:14

标签: swift random unicode character

我目前创建随机unicode字符生成的尝试失败了,例如我在其他问题here中提到的错误。它显然不像生成随机数那么简单。

问题:如何在Swift中生成随机unicode字符?

2 个答案:

答案 0 :(得分:3)

Unicode Scalar Value

  

除高代理和低代理代码之外的任何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)

我对thisthis感到有些困惑。 [最大值:65535]

答案 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)并将其用于生成随机字符。

相关问题