首页 > 解决方案 > 比较数组中的元素,看看字符串中是否有重复项

问题描述

目前,我在将数组与字符串进行比较时遇到问题。我有 2 个数组,想知道这 2 个数组中的元素是否在字符串中

 let resultString = "STEREON10.000 4ailthameGrinreD NOCHIMINNICHNUÖC-LOINHÀ GIAIDACBIET2ty UnOMMOSTCRShitConDONG FlimChineCrJ045 Dòketquásoan: XSHCM goi 7181 8186-8110°593364THUBAY6A7 05-6-2021teIntaiKNInTaiChínhTP.HCM"
 let code_province:[String] = ["xsag", "xsbd", "xsbdi", "xsbl","xsbp",
                           "xsbt", "xsbth", "xscm", "xsct", "xsdl",
                           "xsdlk", "xsdn", "xsdng", "xsdno", "xsdt",
                           "xsgl", "xshcm", "xshg", "xskg", "xskh",
                           "xskt", "xsla", "xsmb", "xsnt", "xspy",
                           "xsqb", "xsqng", "xsqnm", "xsqt", "xsst",
                           "xstg", "xstn", "xstth", "xstv", "xsvl",
                           "xsvt", "xsbri",]
    
    let name_Province:[String] = ["angiang","binhduong","binhdinh","baclieu", "binhphuoc","bentre", "binhthuan", "camau", "cantho", "dalat","daklak", "dongnai", "daNang", "daknong", "dongthap","gialai", "hcm", "haugiang", "kiengiang", "khanhhoa","kontum", "longan", "mienbac", "ninhthuan", "phuyen","quangbinh", "quangNgai", "quangnam", "quangtri", "soctrang","tiengiang", "tayninh", "thuat.hue", "travinh", "vinhlong","vungtau","baria"]

标签: iosarraysswift

解决方案


这是一种方法:

let f: (String) -> String? = { resultString.localizedStandardContains($0) ? $0 : nil }
let provincesInResult = code_province.compactMap(f)
let namesInResult = name_Province.compactMap(f)

我们将要搜索的内容列表从字符串列表映射到 nil(如果未找到)和字符串(如果找到)。然后我们压缩结果,只留下一个找到的列表。这可能是 0、1 或更多,因此请考虑这些可能性。


推荐阅读