我正在建设一个项目,告诉我一段文字中的独特词语。
我有自己的原始字符串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])")}
}
最佳答案
您可以使用NSCountedSet
let text = "Silent Night Holy Night"
let words = text.lowercased().components(separatedBy: " ")
let countedSet = NSCountedSet(array: words)
let singleOccurrencies = countedSet.filter { countedSet.count(for: $0) == 1 }.flatMap { $0 as? String }
现在
singleOccurrencies
包含["holy", "silent"]