如何让字符串数组的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忽略大小写的主要内容,如果未能解决你的问题,请参考以下文章

忽略scala中字符串的大小写

indexOf()忽略大小写方法

Linux忽略大小写查找技巧

如何在单元测试期间覆盖 IQueryable 的 Contains 方法?

SearchBar 过滤时忽略字符

使用 str.contains 忽略 NaN