在 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