【发布时间】:2025-12-20 14:30:11
【问题描述】:
我知道从字符串中获取随机字符。来自here的是代码,
func randomString(_ length: Int) -> String {
let master = Array("abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ_123456789".characters) //0...62 = 63
var randomString = ""
for _ in 1...length{
let random = arc4random_uniform(UInt32(master.count))
randomString.append(String(master[Int(random)]))
}
return randomString
}
用法:
var randomArray1 = [String]()
for _ in 0...62{
randomArray1.append(self.randomString(1))
}
这里,如果randomArray1.append(self.randomString(x)),那么x = 1...N
检查重复元素:
var sameElementCatcher = [String]()
for x in 0...62{
let element = randomArray1[x]
randomArray1[x] = ""
if randomArray1.contains(element){
sameElementCatcher.append(element)
}
}
print("Same Elements")
print(sameElementCatcher.count != 0 ? sameElementCatcher : "Array count is zero")
输出:
相同的元素
[“_”、“u”、“8”、“7”、“E”、“P”、“u”、“y”、“C”、“-”、“C”、“x ", "l", "j", “t”、“D”、“U”、“2”、“e”、“2”]
但我需要从 master 中获取 62 个唯一随机字符的数组,与 randomArray1 进行比较。即,数组计数为零
我怎样才能毫不拖延地做到这一点?
注意:
【问题讨论】:
-
您确定*.com/questions/24026510/… 不能解决您的问题吗?
master.characters.shuffled()不是你需要的吗? -
@MartinR,是的,兄弟不是
master.characters.shuffled()。我需要生成像firebase这样的随机密钥。randomArray1.append(self.randomString(1))只是一个例子。我也可以使用randomArray1.append(self.randomString(6))。 -
总结。您需要生成一个所有字符都是唯一的随机文本吗?
-
import GameKit和let randomNumber = GKRandomSource.sharedRandom().nextInt(upperBound: master.count)return master[randomNumber].description对于随机字符串试试这个可能会有所帮助 -
@MidhunKMohan ,好的兄弟,我会尽力让你知道