ios - 比较数组中的元素,看看字符串中是否有重复项
问题描述
目前,我在将数组与字符串进行比较时遇到问题。我有 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"]
解决方案
这是一种方法:
let f: (String) -> String? = { resultString.localizedStandardContains($0) ? $0 : nil }
let provincesInResult = code_province.compactMap(f)
let namesInResult = name_Province.compactMap(f)
我们将要搜索的内容列表从字符串列表映射到 nil(如果未找到)和字符串(如果找到)。然后我们压缩结果,只留下一个找到的列表。这可能是 0、1 或更多,因此请考虑这些可能性。
推荐阅读
- ios - 仅当键盘覆盖按钮时才向上移动视图
- javascript - 如何调用数千个 AJAX 嵌套的 GET 请求?
- azure-devops - 为什么 Azure Devops IterationId 是工作项历史的 Int?
- python - 如何在 sympy 中操纵 diop_linear 的结果
- django - Django:从另一个视图获取上下文数据的正确方法
- video - 确定可用于容器的 FFmpeg 编解码器
- symfony5 - SYMFONY 5 错误:找不到“GET /pins/create”的路由:不允许方法(允许:POST)
- c# - 如何正确引用 C# 中不同项目中的代码?
- reactjs - 意外使用“事件”无限制全局 - redux
- r - XML 到 Dataframe,解析问题