swift - 让包含与多个单词一起工作
问题描述
我正在搜索并希望它能够防错。
假设我们有 3 个字符串:containsText
其中包含我要查找的 2 个单词fullTextShort
和fullTextLong
我的 funccontains
可以使用fullTextShort
,因为我正在寻找的单词紧随其后,但它不适fullTextLong
用于两者之间的世界。
如何让函数在两种情况下都返回 true?
struct ContainsFuncView: View {
let fullTextShort = "I like pineapple"
let fullTextLong = "I like green pineapple"
let containsText = "like pineapple"
var body: some View {
VStack {
contains(type: "Short")
contains(type: "Long")
}
}
func contains(type: String) -> Text {
var containsInFullText: Bool = false
if type == "Short" {
containsInFullText = fullTextShort.localizedStandardContains(containsText)
}
else if type == "Long" {
containsInFullText = fullTextLong.localizedStandardContains(containsText)
}
return Text("\(containsInFullText ? "Contains" : "Doesn't contain") in fullText\(type)").foregroundColor(containsInFullText ? .green : .red)
}
}
谢谢!
解决方案
containsText
在空间分裂。然后测试文本中是否有任何或所有单词:
containsInFullText = containsText.components(separatedBy: " ").contains { fullTextShort.localizedStandardContains($0) }
containsInFullText = containsText.components(separatedBy: " ").allSatisfy { fullTextShort.localizedStandardContains($0) }
推荐阅读
- git - 在 git 中搜索与给定文件路径匹配的最后提交的文件
- javascript - 在继续下一次迭代之前等待
- cloud - 阿里云如何定义私有区域id
- python - Python PyQt5 如何使用 QWidget 显示完整的 QMenuBar
- node.js - 使用 Firebase Cloud Functions 时 Nodemailer 查询 A EREFUSED localhost
- amazon-web-services - Databricks 工作人员和 Elasticsearch 节点是否需要位于 AWS 的同一 VPC 中?
- python - “SyntaxError:无法构建词法分析器”是什么意思?
- integration-testing - 夸库斯。在集成测试中使用 spy 进行测试
- javascript - 如何使用 javaScript 和 jQuery 从 URL 中保存 json 对象
- python - 抑制 keras 消息:(常量):/job/localhost/