繁体   English   中英

如何在集合中搜索包含某些字符的字符串?

[英]How to search for a String containing certain Characters in a Set?

如何搜索Set以获取以下结果?

let brands: Set = ["apple", "microsoft", "hp", "lenovo", "asus", "qualcomm", "intel", "kingston"]

findValueinSet(brands, withCharacters: "a", "u") // returns "asus"

您可以同时过滤集合和数组

filter(setOrArray, predicate)

无论哪种情况,结果都是一个数组。 给定集合的所有字符是否包含在字符串中,可以使用

searchCharacters.isSubsetOf(string)

一起:

let brands: Set<String> = ["apple", "microsoft", "hp", "lenovo", "asus", "qualcomm", "intel", "kingston"]
let searchCharacters = Set("au")

let filtered = filter(brands) { searchCharacters.isSubsetOf($0) }
println(filtered) // [qualcomm, asus]

如果brands是数组或String集合,则此方法有效。

注意:您不应在Swift源代码中使用68k元素定义文字数组。 最好使用资源文件(简单的文本文件或属性列表),然后在运行时从那里加载数组。

这将返回一个集合中的数组,其中包含包含另一个集合中的字母的字符串:

let brands: Set<String> = ["apple", "microsoft", "hp", "lenovo", "asus", "qualcomm", "intel", "kingston"]
let filters: Set<Character> = ["a", "u"]

func predicate(item: String, filters:Set<Character>) -> Bool {
  for single in filters {
    if contains(item, single) {
      return true
    }
  }
  return false
}


let found = filter(brands, {predicate($0, filters)})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM