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

Swift中使用.contains判断字符串功能正常但报错问题咨询

解决Swift中判断字符串后缀的错误问题

嘿,我明白你遇到的困惑了!你想用contains()来判断字符串是否以"Jr."结尾,但这个方法其实不是干这个活儿的,这就是问题所在~

错误原因

contains(_:)方法的作用是检查目标字符串中是否存在某个子串/字符,不管它在开头、中间还是结尾。比如如果你的字符串是"Jr. Smith",contains("Jr.")也会返回true,这显然不符合你要判断后缀的需求。而且如果你的代码运行时抛出错误,大概率是因为你误把contains当成了后缀判断方法,或者可能在参数传递上有小疏漏(比如没加引号之类的语法问题)。

正确的做法:使用hasSuffix(_:)

Swift专门提供了hasSuffix(_:)方法来判断字符串是否以指定后缀结尾,完全匹配你的需求。举个例子:

let junior = "Alice Johnson Jr."

// 正确判断是否以"Jr."为后缀
if junior.hasSuffix("Jr.") {
    print("这个字符串以Jr.结尾!")
} else {
    print("这个字符串不以Jr.结尾。")
}

这段代码会准确检查字符串的最后几个字符是否和"Jr."完全匹配,不会出现误判,也不会抛出不必要的错误。

对比错误用法

如果你之前写的是类似这样的代码:

// 错误:这个只会检查是否包含"Jr.",不是判断后缀
if junior.contains("Jr.") {
    // 逻辑不符合预期
}

它会在字符串任意位置出现"Jr."时都执行分支,这显然不是你想要的结果。

换成hasSuffix之后,就能完美实现你需要的功能啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 06:58:08