【发布时间】:2017-05-07 10:52:52
【问题描述】:
我正在构建一个项目,它可以告诉我一段文本中的独特单词。
我有我的原始字符串 scriptTextView 我已将每个单词添加到数组 scriptEachWordInArray
我现在想创建一个名为 scriptUniqueWords 的数组,它只包含在 scriptEachWordInArray
中出现一次(换句话说是唯一的)的单词因此,我希望我的 scriptUniqueWords 数组等于 = ["Silent","Holy"]。
我不想创建一个没有重复项的数组,而是一个只包含最初出现一次的值的数组。
var scriptTextView = "Silent Night Holy Night"
var scriptEachWordInArray = ["Silent", "night", "Holy", "night"]
var scriptUniqueWords = [String]()
for i in 0..<scriptEachWordInArray.count {
if scriptTextView.components(separatedBy: "\(scriptEachWordInArray[i]) ").count == 1 {
scriptUniqueWords.append(scriptEachWordInArray[i])
print("Unique word \(scriptEachWordInArray[i])")}
}
【问题讨论】:
-
试过
Set? -
@jtbandes @Bek 谢谢,但
Set技术不会删除所有重复项,因此每个单词将出现一次而不是可能出现多次。夜晚只会出现在阵列中一次,而不是两次。而我希望只隔离独特的价值观。我已经尝试过了,或者我错过了什么。 -
重新打开,因为我确信这个问题与其他链接的问题不同。但是,我仍然认为您可以使用 Sets 来解决问题。
-
@jtbandes 当然,如果你认为我错了,un-dupe-hammering 是完全合理的。