arrays - Swift - 快速搜索单词列表
问题描述
我在 SwiftUI 中有一个文本字段,用户在其中输入一个单词。我捕获使用组合输入的字符,并希望搜索单词列表并列出在其中找到字符的单词。
例如,用户输入 d - 列表显示 dan das dat den dev die din div 用户输入 de - 列表显示 den dev 用户输入 dev - 列表显示 dev
.onReceive(Just(textSearch.text)) {
newString in if self.usedWords.contains(newString) {
self.mySearch(searchWord: newString) } }
仅当 usedWords 的元素中的 newString 完全匹配时才调用 mySearch 函数...我需要部分匹配
最后一个用例适用于 string.contains("dev"),但不适用于 string.contains("de")。显然 contains 无法完成匹配子字符串并返回所有包含该子字符串的工作。我可以使用另一个快速实用程序吗?
感谢您的任何帮助
解决方案
尝试这样的事情:
.onReceive(Just(textSearch.text)) { newString in
if newString.isEmpty { return }
let result = self.usedWords.filter { $0.hasPrefix(newString) }
result.forEach { tx in
self.mySearch(searchWord: tx)
}
}
推荐阅读
- c - 将虚拟地址从多级页表转换为物理地址
- matlab - 如何在 MATLAB 中动态绘制数据
- ajax - 如何在 componentDidUpdate 中加载 AJAX 并更新状态?
- javascript - 在浏览器上提供 npm 模块的 javascript 源的正确方法是什么?
- sql - 值大于值的 SQL COUNT 列
- excel - 在单个单元格中搜索多个单词并返回找到的所有单词
- responsive-design - 调整窗口元素大小时,段落后移动会占用更多空间
- sql - 以特殊方式按可空列分组
- random - C++:获取线性同余生成器的状态
- php - Cardinity 支付的 OpenCart 问题 openssl_encrypt():