Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift2 检查列表中的成员资格的简单方法?_Swift2 - Fatal编程技术网

Swift2 检查列表中的成员资格的简单方法?

Swift2 检查列表中的成员资格的简单方法?,swift2,Swift2,对于在闭包中使用(尽管我认为它在其他地方也很有用),检查给定元素是否为列表成员(或任何字符是否为字符串成员)的最干净的方法是什么 例如,要检查字符串“abcde”是否包含“aeiou”中的任何字符,或者列表[“bill”、“sam”、“suzy”]是否包含[“abe”、“bill”、“charlie”]?

对于在闭包中使用(尽管我认为它在其他地方也很有用),检查给定元素是否为列表成员(或任何字符是否为字符串成员)的最干净的方法是什么


例如,要检查字符串
“abcde”
是否包含
“aeiou”
中的任何字符,或者列表
[“bill”、“sam”、“suzy”]
是否包含
[“abe”、“bill”、“charlie”]

我建议从苹果公司的网站开始

下面是您问题的一个示例:

// With [Character]
let vowels: [Character] = ["a", "e", "i", "o", "u"]
let chars: [Character] = ["a", "b", "c", "d", "e"]
let resultVowels = vowels.filter { chars.contains($0) }
resultVowels.count // == 2
resultVowels.description // == "[a, e]"

// With [String]
let people = ["Bill", "Sam", "Suzy"]
let peeps = ["Abe", "Bill", "Charlie"]
let resultPeople = people.filter { peeps.contains($0) }
resultPeople.count // == 1
resultPeople.description // == "[Bill]"
结果将是匹配的名称(或数字、字符等)。因此,在这个过程中,您不仅可以获得计数,还可以获得比较的内容。只要类型遵循Equatable,这将适用于您。 如果要返回布尔值,只需执行以下操作:

return filteredArray.count != 0
现在,如果您想将[Character]与字符串进行比较,那么:

let vowels: [Character] = ["a", "e", "i", "o", "u"]
let someString = "abcde"
let result = vowels.filter { someString.characters.contains($0) }
result.count // == 2
result.description // == "[a, e]"
String.characters属性是Swift 2引入的一项新功能


希望我能为您提供帮助。

Swift阵列内置了用于此确切功能的功能

我建议从苹果公司的网站开始

下面是您问题的一个示例:

// With [Character]
let vowels: [Character] = ["a", "e", "i", "o", "u"]
let chars: [Character] = ["a", "b", "c", "d", "e"]
let resultVowels = vowels.filter { chars.contains($0) }
resultVowels.count // == 2
resultVowels.description // == "[a, e]"

// With [String]
let people = ["Bill", "Sam", "Suzy"]
let peeps = ["Abe", "Bill", "Charlie"]
let resultPeople = people.filter { peeps.contains($0) }
resultPeople.count // == 1
resultPeople.description // == "[Bill]"
结果将是匹配的名称(或数字、字符等)。因此,在这个过程中,您不仅可以获得计数,还可以获得比较的内容。只要类型遵循Equatable,这将适用于您。 如果要返回布尔值,只需执行以下操作:

return filteredArray.count != 0
现在,如果您想将[Character]与字符串进行比较,那么:

let vowels: [Character] = ["a", "e", "i", "o", "u"]
let someString = "abcde"
let result = vowels.filter { someString.characters.contains($0) }
result.count // == 2
result.description // == "[a, e]"
String.characters属性是Swift 2引入的一项新功能

我希望我能帮助你。

1)两个字的常用字符 使用
Set
struct:

let set0 = Set("abcde".characters)
let set1 = Set("aeiou".characters)

let intersection = set0.intersect(set1) // {"e", "a"}
2) 2个列表中的常用词 类似地,您可以找到两个字符串数组的交点:

let set0 : Set = ["bill", "sam", "suzy"]
let set1 : Set = ["abe", "bill", "charlie"]

let intersection = set0.intersect(set1) // {"bill"}
3) 返回阵列 请注意,在这两个示例中,
交点
常量是一个
集合
。您可以将其转换为数组写入:

let list = Array(intersection)
希望这有帮助

注意:此代码适用于Swift 2.0

更新 更具体地说,如果您想知道是否存在交叉点,只需写下:

 !intersection.isEmpty
1)常用字符2个单词 使用
Set
struct:

let set0 = Set("abcde".characters)
let set1 = Set("aeiou".characters)

let intersection = set0.intersect(set1) // {"e", "a"}
2) 2个列表中的常用词 类似地,您可以找到两个字符串数组的交点:

let set0 : Set = ["bill", "sam", "suzy"]
let set1 : Set = ["abe", "bill", "charlie"]

let intersection = set0.intersect(set1) // {"bill"}
3) 返回阵列 请注意,在这两个示例中,
交点
常量是一个
集合
。您可以将其转换为数组写入:

let list = Array(intersection)
希望这有帮助

注意:此代码适用于Swift 2.0

更新 更具体地说,如果您想知道是否存在交叉点,只需写下:

 !intersection.isEmpty

在第一次匹配后取消搜索可以吗?在第一次匹配后取消搜索可以吗?如果数组有重复的元素,这种方法可能会导致意外的结果。查看问题的文本,我仍然认为这个答案是正确的:
例如,检查字符串“abcde”是否正确包含“aeiou”中的任何字符。
。但是,我更新了我的答案,以获得一个布尔值,指示两个列表之间是否存在交集。如果数组中有重复的元素,这种方法可能会导致意外的结果。查看问题的文本,我仍然认为此答案是正确的:
例如,检查字符串“abcde”包含“aeiou”中的任何字符。
。但是我更新了我的答案,得到了一个布尔值,指示这两个列表之间是否存在交集。答案很好。我给appzYourLife打勾只是因为他的方法更简洁,如果我可以的话,我也会给这个答案打勾。答案很好。我给appzYourLife打勾只是因为他的方法更简洁,如果我可以的话,我也会给这个答案打勾。