使检查字符串不区分大小写

时间:2018-07-13 22:11:14

标签: vb.net

我正在编写一个程序,用户在文本框中输入一个项目,该程序将检查该项目是否在字符串中。这是我当前的代码:

     Try
        Dim Request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("https://www.dropbox.com/s/2l37j6v0ofsenus/Foods.txt?dl=1")
        Dim Response As System.Net.HttpWebResponse = Request.GetResponse()
        Dim sr As System.IO.StreamReader = New System.IO.StreamReader(Response.GetResponseStream)
        Dim Foods As String = sr.ReadToEnd()
        If Foods.Contains(TXTItem1.Text) Then
            Dim Substring As String = Foods.Split(TXTItem1.Text)(1)
            Dim SubString1 As String = Substring.Split("-")(1)
            Dim SPValue As String = SubString1.Split(vbNewLine)(0)
            MsgBox("That item is worth " + SPValue + " SmartPoints!", info)
        Else
            MsgBox("Item is not found in our list!", critical)
        End If

    Catch ex As Exception
        MsgBox("Error")
    End Try

我想使其在检查字符串时不区分大小写的位置。因此,如果用户输入“ eggs”并且字符串包含“ Eggs”,则即使小写字母也可以执行该功能。我怎样才能做到这一点?谢谢!

2 个答案:

答案 0 :(得分:0)

@ jacob-h在the comment above中引用的链接问题已经可以回答您的问题,但是在这种情况下,我更喜欢使用扩展方法。

这是我使用了一段时间的扩展方法版本。在您的项目中添加一个新模块(或在您认为合适的情况下使用现有模块),然后向该模块添加此扩展方法:

<Runtime.CompilerServices.Extension>
Public Function ContainsIgnoreCase(ByVal s As String, ByVal value As String)
    Return s.IndexOf(value, StringComparison.OrdinalIgnoreCase) >= 0
End Function

然后您可以使用类似这样的内容:

If Foods.ContainsIgnoreCase(TXTItem1.Text) Then
    ' Do your thing.
End If

答案 1 :(得分:0)

如果将要测试的字符串转换为小写,并且将要测试的字符串转换为小写,那么就不再考虑大小写了!

有些函数可以为您完成此任务,但是它们背后的逻辑始终是相同的……无条件的比较要求在进行比较之前,将两段数据都转换为全部小写(或全部大写) 。我