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

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

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

在这里,我们将使用以下3种方法在Swift中生成一个随机的字母数字字符串 −

  • 使用RandomNumberGenerator协议

  • 使用Random()函数

  • 使用高阶函数

使用RandomNumberGenerator协议

Swift 5带有一个随机()函数,它被添加到基础框架中。我们将使用RandomNumberGenerator协议,因为随机()函数是该协议的一部分。

例子

下面的例子演示了如何使用随机()函数在Swift 5中生成一个随机字母数字字符串。

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和字母串的字符数之间生成一个随机数。

一旦生成了随机字符,它就把它们追加到随机字符串(输出字符串)中。

使用Random()函数

这是在Swift中生成随机字母数字字符串的另一种方法,就是使用String和随机()函数。下面是一个如何使用它来生成特定长度的随机字符串的例子:

例子

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

在随机函数中,索引可用于从字母串中选择一个随机字符,并将其追加到随机字符串中。

使用高阶函数

在 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

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

结论

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程