在 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 方法中的任何一種都可能對生成隨機字母數字字串很有用。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP