Foxtable(狐表)用户栏目专家坐堂 → 字典匹配如何忽略字母大小写?


  共有3321人关注过本帖树形打印复制链接

主题:字典匹配如何忽略字母大小写?

帅哥哟,离线,有人找我吗?
wh420
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
字典匹配如何忽略字母大小写?  发帖心情 Post By:2015/5/12 15:42:00 [只看该作者]

Dim dic As new Dictionary(of String,String)
Dim dicfile As String =  Forms("窗口1").Controls("TextBox2").value
Dim Book As New XLS.Book(dicfile)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For i As Integer = 0 To Sheet.Rows.Count-1
    If dic.ContainsKey(Sheet(i, 0).Text) = False Then
        dic.add(Sheet(i, 0).Text,Sheet(i, 1).Text)
    End If
Next

 

If dic.ContainsKey(Sheet1(i, j).Text) Then
  Sheet1(i, j).Value = Sheet1(i, j).Text & "|" & dic(Sheet1(i, j).Text)
end if


字典:键为:BUS BAY  值为:巴士站
需要匹配的EXCEL文件内容为:
1行1列:BUS BAY
2行1列:Bus BAY
3行1列:bus bay


只有1行1列的那个全部大写的(BUS BAY)能匹配上,其他小写及大小写混合的就匹配不上
问:字典如何忽略大小写?使以上3行内容全部匹配?


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/12 15:43:00 [只看该作者]

 If dic.ContainsKey(Sheet(i, 0).Text.toUpper) = False Then
        dic.add(Sheet(i, 0).Text.toUpper,Sheet(i, 1).Text.toUpper)
    End If

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2015/5/12 15:51:00 [只看该作者]

.toUpper只匹配大写的,小写的及大小写混合的就不行了。我要的是不管键是大写的BUS BAY还是小写的bus bay还是混合的 Bus Bay 都可以匹配

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/12 15:52:00 [只看该作者]

呵呵,用了就知道.没有问题. 全部都转为大写了

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2015/5/12 15:54:00 [只看该作者]

试过了不行,您上面的语句等于把字典中的键都改为大写了,但我需要与之匹配的EXCEL有小写,有混合

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/12 15:58:00 [只看该作者]

全部弄成大写不就行了?

 

Dim dic As new Dictionary(of String,String)
Dim dicfile As String =  Forms("窗口1").Controls("TextBox2").value
Dim Book As New XLS.Book(dicfile)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For i As Integer = 0 To Sheet.Rows.Count-1
    If dic.ContainsKey(Sheet(i, 0).Text.ToUpper) = False Then
        dic.add(Sheet(i, 0).Text.ToUpper,Sheet(i, 1).Text)
    End If
Next

 

If dic.ContainsKey(Sheet1(i, j).Text.ToUpper) Then
  Sheet1(i, j).Value = Sheet1(i, j).Text & "|" & dic(Sheet1(i, j).Text)
End If

 


 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2015/5/12 16:07:00 [只看该作者]

TO 大红袍,试过了提示给定的关键字不在字典中。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/12 16:08:00 [只看该作者]

 这句忘记改了

 

Sheet1(i, j).Value = Sheet1(i, j).Text & "|" & dic(Sheet1(i, j).Text.ToUpper)


 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2015/5/12 16:21:00 [只看该作者]

问题解决,多谢大红袍

 回到顶部