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


在本文中,您将学习在 Swift 语言中生成随机字母数字字符串的各种方法。

在这里,我们将使用以下 3 种方法在 swift 中生成随机字母数字字符串:

  • 使用 RandomNumberGenerator 协议

  • 使用 Random() 函数

  • 使用高阶函数

使用 RandomNumberGenerator 协议

Swift 5 带有一个 random() 函数,该函数已添加到 Foundation 框架中。我们将使用 RandomNumberGenerator 协议,因为 random() 函数是该协议的一部分。

示例

以下示例演示了如何在 Swift 5 中使用 random() 函数生成随机字母数字字符串:

import Foundation
func randomAlphanumericString(_ length: Int) -> String {
   let letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
   let len = UInt32(letters.count)
   var random = SystemRandomNumberGenerator()
   var randomString = ""
   for _ in 0..<length {
      let randomIndex = Int(random.next(upperBound: len))
      let randomCharacter = letters[letters.index(letters.startIndex, offsetBy: randomIndex)]
      randomString.append(randomCharacter)
   }
   return randomString
}

// Calling this function to generate a random string of any length, like this:
let randomString = randomAlphanumericString(10)
print("Random alphanumeric string: \(randomString)")

输出

Random alphanumeric string: VXU9XlmO0U

注意 - 输出将随机生成。

此函数使用 SystemRandomNumberGenerator 协议的 next(upperBound:) 方法在 0 和 letters 字符串中字符数之间生成随机数。

生成随机字符后,将其附加到 randomString(输出字符串)。

使用 Random() 函数

在 Swift 中生成随机字母数字字符串的另一种方法是使用 String 和 random() 函数。以下是如何使用它来生成具有特定长度的随机字符串的示例:

示例

import Foundation
func randomAlphanumericString(_ length: Int) -> String {
   let letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
   var randomString = ""
   for _ in 0..<length {
      let randomIndex = Int.random(in: 0..<letters.count)
      let randomCharacter = letters[letters.index(letters.startIndex, offsetBy: randomIndex)]
      randomString.append(randomCharacter)
   }
   return randomString
}
// Calling this function to generate a random string of any length, like this:
let randomString = randomAlphanumericString(10)
print("Random alphanumeric string: \(randomString)")

输出

Random alphanumeric string: WTU6XlbO1U

在 random 函数中,可以使用索引从 letters 字符串中选择一个随机字符,并将其附加到 randomString。

使用高阶函数

在 Swift 5 中生成随机字母数字字符串的另一种方法是使用 String 和 randomElement() 方法,该方法从 Swift 5.1 开始可用。对于低于 Swift 版本,此函数将不起作用。您可以为旧版 Swift 版本找到替代方法。

示例

import Foundation
func randomAlphanumericString(_ length: Int) -> String {
   let letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
   let randomString = (0..<length).map{ _ in String(letters.randomElement()!) }.reduce("", +)
   return randomString
}
// Calling this function to generate a random string of any length, like this:
let randomString = randomAlphanumericString(10)
print("Random alphanumeric string: \(randomString)")

输出

Random alphanumeric string: A5K6XBbP2W

此函数生成所需长度的数字范围,并将其映射到 letters 字符串的随机元素,然后将所有元素连接在一起以形成单个字符串。randomElement() 方法从 letters 字符串中选择一个随机字符,而 reduce 方法将所有子字符串连接成一个字符串。

结论

最后,有几种方法可以在 Swift 中生成随机生成的字母数字字符串。Foundation 框架的 random() 函数用于生成可用于生成随机字母数字字符串的随机数。Swift 5.1+ 的 random() 函数和 randomElement() 方法也是生成随机字母数字字符串的可行选择。根据您的需要,这些 Swift 方法中的任何一种都可能对生成随机字母数字字符串很有用。

更新于: 2023 年 2 月 28 日

2K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.