如何让字符串数组的Contains忽略大小写
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让字符串数组的Contains忽略大小写相关的知识,希望对你有一定的参考价值。
参考技术A 1、如何定义一个包含有100个String类型的数组。Dim tStrings(99) As String
或:
Dim tStrings(0 To 99) As String
或:
Dim tStrings(1 To 100) As String
2、如何定义一个String类型的动态数组。
Dim tStrings() As String
如果你想定义它有100个元素,则这样定义。
ReDim tStrings(0 To 99)
或
ReDim tStrings(1 To 100)
ReDim会使数组内容全部丢失。
如果你只想重新定义数组大小,而保留数组的内容可以这样:
Dim tStrings() As String
ReDim tStrings(0 To 99)
ReDim Preserve tStrings(0 To 49)
Preserve参数保留数组原有内容。但假如你缩小了数组的上界,则后面的元素会丢失。比如上面的定义,49到100的以后的元素就丢失了。
但需要注意的是使用Preserve参数时数组下界不可以更改,比如:
Dim tStrings() As String
ReDim tStrings(51 To 100)
ReDim Preserve tStrings(0 To 100)
这样会出错。
而下面这样则是可以的:
Dim tStrings() As String
ReDim tStrings(0 To 100)
ReDim Preserve tStrings(0 To 49)本回答被提问者采纳
SearchBar 过滤时忽略字符
【中文标题】SearchBar 过滤时忽略字符【英文标题】:SearchBar ignore character while filtering 【发布时间】:2017-11-27 07:04:35 【问题描述】:我有一个填充了字符串类型数组的 tableView。字符串中的某些单词包含连字符 (-)。我知道我可以过滤一个 tableView 并让它根据需要删除这个字符。是否可以在搜索过程中忽略该字符但它仍然出现在 tableView 中?我有兴趣通过精确的单词搜索而不是 .contains 参数进行过滤。
例子:
数组 = [“一”、“二”、“三-”]
人搜索“t”:没有返回
人搜索“二”:搜索返回“二”
人搜索“三”:搜索返回“三-”
【问题讨论】:
如果在显示之前删除未使用的字符会怎样:remove-special-characters-from-string 【参考方案1】:如果您想使用CONTAINS[c]
或MATCHES
进行过滤,这里有两种方法,这里是NSPredicate
的示例:
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text!)
let array = (self.array as NSArray).filtered(using: searchPredicate)
现在使用 Contains 将根据包含您所说的关键字的字符串进行过滤,因此将返回 3- 因为用户搜索了三个:
人搜索“三”:搜索返回“三-”。
另一种方法是使用 MATCHES,这里是一个例子:
let searchPredicate = NSPredicate(format: "SELF MATCHES %@", searchController.searchBar.text!)
let array = (self.array as NSArray).filtered(using: searchPredicate)
如果我以你的例子为例,如果它与搜索键完全相同,则使用匹配项将返回结果:
人搜索“三”:搜索返回“”。
但是
人搜索“三-”:搜索返回“三-”。
现在,如果您想在显示时忽略该字符,则可以在 cellForRow 中找到它时对其进行修剪:
if string.contains("-")
let trimmedString = string.replacingOccurrences(of: "-", with: "")
最后,我认为如果您在显示时使用包含修剪,那是您的最佳选择。
【讨论】:
以上是关于如何让字符串数组的Contains忽略大小写的主要内容,如果未能解决你的问题,请参考以下文章