首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Swift中生成随机字母数字字符串

在Swift中生成随机字母数字字符串
EN

Stack Overflow用户
提问于 2014-11-10 21:46:47
回答 11查看 110.1K关注 0票数 248

如何在Swift中生成随机字母数字字符串?

EN

回答 11

Stack Overflow用户

发布于 2016-01-13 18:02:09

您也可以通过以下方式使用它:

代码语言:javascript
复制
extension String {

    static func random(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.startIndex.advancedBy(Int(randomValue))])"
        }

        return randomString
    }
}

简单用法:

代码语言:javascript
复制
let randomString = String.random()

Swift 3语法:

代码语言:javascript
复制
extension String {

    static func random(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
    }
}

Swift 4语法:

代码语言:javascript
复制
extension String {

    static func random(length: Int = 20) -> String {
        let base = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
        var randomString: String = ""

        for _ in 0..<length {
            let randomValue = arc4random_uniform(UInt32(base.count))
            randomString += "\(base[base.index(base.startIndex, offsetBy: Int(randomValue))])"
        }
        return randomString
    }
}
票数 52
EN

Stack Overflow用户

发布于 2017-08-19 00:28:27

Swift:

代码语言:javascript
复制
let randomString = NSUUID().uuidString
票数 36
EN

Stack Overflow用户

发布于 2019-04-01 23:46:11

对于那些不想输入整个字符集的人:

代码语言:javascript
复制
func randomAlphanumericString(length: Int) -> String  {
    enum Statics {
        static let scalars = [UnicodeScalar("a").value...UnicodeScalar("z").value,
                              UnicodeScalar("A").value...UnicodeScalar("Z").value,
                              UnicodeScalar("0").value...UnicodeScalar("9").value].joined()

        static let characters = scalars.map { Character(UnicodeScalar($0)!) }
    }

    let result = (0..<length).map { _ in Statics.characters.randomElement()! }
    return String(result)
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26845307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档