在 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 方法中的任何一種都可能對生成隨機字母數字字串很有用。