You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Swift中如何判断字符串是否包含字符串数组中的任意子串

功能实现:判断字符串是否包含指定数组中的任意子串

现有目标字符串"A very nice beach",需要判断其是否包含wordGroups数组中的任意子串,以下是不同场景的Swift实现方案:

方案1:基础遍历实现(易扩展自定义逻辑)

逻辑清晰,适合后续需要在匹配时添加额外判断规则的场景:

// 目标字符串
let targetString = "A very nice beach"
// 待匹配的关键词数组
let wordGroups = [
    "beach",
    "waterfront",
    "with a water view",
    "near ocean",
    "close to water"
]

var isContainsAnyKeyword = false
for word in wordGroups {
    if targetString.contains(word) {
        isContainsAnyKeyword = true
        break // 匹配到第一个就终止遍历,提升性能
    }
}

print(isContainsAnyKeyword) // 输出结果:true

方案2:高阶函数简化写法(一行实现)

无需额外自定义逻辑时,可直接用contains高阶函数简化代码:

let targetString = "A very nice beach"
let wordGroups = [
    "beach",
    "waterfront",
    "with a water view",
    "near ocean",
    "close to water"
]

let isContainsAnyKeyword = wordGroups.contains(where: targetString.contains)
print(isContainsAnyKeyword) // 输出结果:true

方案3:支持特殊匹配规则

如果需要忽略大小写、忽略重音符号等特殊匹配需求,可以用range(of:options:)实现:

let targetString = "A very nice beach"
let wordGroups = [
    "beach",
    "waterfront",
    "with a water view",
    "near ocean",
    "close to water"
]

// 示例配置为忽略大小写+忽略重音符号匹配
let isContainsAnyKeyword = wordGroups.contains { word in
    targetString.range(of: word, options: [.caseInsensitive, .diacriticInsensitive]) != nil
}
print(isContainsAnyKeyword) // 输出结果:true

内容的提问来源于stack exchange,提问作者Mochi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 03:54:04