首页 > 解决方案 > Swift Playgrounds Apple 每个人都可以编写应用程序练习

问题描述

我试图弄清楚为什么这个特定的代码不会在操场上通过,我正在完成 Apple 的“每个人都可以使用 Swift 编写应用程序开发”课程。这是挑战:

现在用户可以登录,他们需要能够搜索用户列表来找到他们的朋友。这通常可以通过让用户输入名称来完成,然后遍历所有用户名称以查看用户名称是否包含输入的搜索词。稍后您将了解循环,因此现在您只需完成其中的一个循环。假设您正在搜索用户名为 StepChallenger 的朋友。您在搜索栏中输入“步骤”,应用程序开始搜索。当应用程序找到用户名“stepchallenger”时,它会检查“StepChallenge”是否包含“step”。

使用下面的 userName 和 searchName,编写一个 if-else 语句来检查 userName 是否包含搜索词。搜索不应区分大小写。

这是我的代码:

import Foundation
let userName = "StepChallenger"
let searchName = "step"

if userName.contains("step") && userName.lowercased() == searchName  {
print("We have found the user")

}

任何帮助将不胜感激,如果我没有正确执行此操作,我深表歉意。提前致谢。

标签: swift

解决方案


它没有打印任何东西,因为ifis的结果false。让我们检查一下原因

  • 你的第一个条件userName.contains("step")

userName是“StepChallenger”,您正在检查它是否包含“step”。它没有,因为您没有进行不区分大小写的检查。因此falseif自从false您使用&&.

  • 您的第二个条件userName.lowercased()是“stepchallenger”,您正在检查它是否等于“step”。不,它不是同一个字符串,所以它再次返回false

所以最后该print语句永远不会执行。userName检查包含是否需要做的searchName是将所有内容转换为相同的大小写并使用该contains方法。

if userName.lowercased().contains(searchName.lowercased()) {
    print("User found!")
}

或者,您可以查看caseInsensitiveCompare(_:)检查方法。


推荐阅读