在 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+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告