【发布时间】:2016-12-29 18:59:03
【问题描述】:
我正在尝试计算数组中不同字符串的数量。比如我的数组是:
let stringArray = ["test", "test", "test1", "test2"]
输出应为“3”,因为“test”和“test”相同,但“test”、“test1”和“test2”不同。我正在考虑使用嵌套的 for 循环来检查第一个循环中的 stringArray 字符串与 stringArray 中的所有其他元素,但我不能让它工作。我现在唯一能想到的就是检查内部循环是否字符串相等并中断 -> 进入下一个元素。我遇到的问题是检查内循环是否在最后一个元素上。这是我想出的:
var differentStrings = Int()
let stringArray = ["test", "test", "test1", "test2"]
for str in stringArray {
for str2 in stringArray {
if (str == str2) {
break
} else {
differentStrings = differentStrings + 1
}
}
}
print(differentStrings)
这里的输出不正确 -> 它打印出 5,因为如果 str2 是内部循环中的最后一个元素,我没有检查 else 语句。
如何获取数组中不同字符串的数量?
【问题讨论】:
-
单线:
let ct = Set(stringArray).count -
@matt 甚至不需要
NSCountedSet。最好使用原生Swift集 -
@Alexander 你及时抓住了我,我仍然可以编辑它!谢谢
-
这个问题已关闭 @DanLevy。没错。下一次,先搜索。请。
标签: arrays swift loops for-loop