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

Swift中如何检查数组是否包含待追加的动态字符串值

解决数组中检查动态生成字符串是否存在的问题

我明白你的需求啦——你想在把动态生成的拼接字符串追加到数组前,先检查这个完整的字符串是否已经存在于数组中,但当前代码里的判断逻辑搞错了检查对象。

问题分析

你当前的代码里,array.contains(km)是在检查数组中是否存在单独的km字符串(比如示例里的"1"),但你实际要验证的是km + "Kilometers" + "=" + meters + "meters"这个完整的拼接结果是否已经在数组里,这两者完全不是一回事。

解决方案

核心思路是:先把要追加的完整字符串提前生成并存储到变量中,再用这个变量去做存在性检查,之后再决定是否追加或者执行其他逻辑。

修改后的示例代码

var km: String = "1"
var meters: String = "1000"
var array: [String] = []

// 1. 提前生成要插入的完整字符串,用字符串插值让拼接更清晰
let newEntry = "\(km)Kilometers=\(meters)meters"

// 2. 检查数组是否已经包含这个完整条目
if array.contains(newEntry) {
    // 如果存在,执行你需要的逻辑,比如提示用户、跳过追加等
    print("这个条目已经存在啦!")
} else {
    // 如果不存在,再追加到数组中
    array.append(newEntry)
    print("条目已成功添加")
}

额外优化建议

  • 用字符串插值\(变量)替代字符串拼接+,代码可读性更强,也不容易出错
  • 如果后续需要频繁做这类检查,或者数组元素很多,可以考虑用Set来存储这些条目,因为Set的contains操作时间复杂度是O(1),比数组的O(n)效率更高(不过如果需要保持元素的插入顺序,还是用数组更合适)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:25:08