Como recuperar o índice de um caractere com a função Substring independentemente de seu case em uma frase

Veja mais uma dica .Net feita por Rafael Nascimento.

Como recuperar o índice de um caractere com a função Substring independentemente de seu case em uma frase

 

O método IndexOf da classe String é case-sensitive. Existem 2 maneiras possíveis de contornar este problema:

 

  1. Converter o case da frase inteira e da substring para qualquer outro case e, então, achar o índice do caracter em particular.

 

 Dim strPrincipal As String = "A .net Magazine é bem informativa."

Dim strSecundaria As String = "magazine"

 

' A linha abaixo retornará -1 quando o esperado é 7.

Dim i As Integer = strPrincipal.IndexOf(strSecundaria)

 

' A linha abaixo retornará o índice correto

Dim j As Integer =   

strPrincipal.ToLower().IndexOf(strSecundaria.ToLower())

 

  1. Utilizar o método substring da classe CompareInfo do namespace System.Globalization. Esta é uma maneira mais profissional e elegante de resolver o problema.

 

Dim strPrincipal As String = "A .net Magazine é bem informativa."

Dim strSecundaria As String = "magazine"

 

' Criamos um objeto da classe CompareInfo para uma cultura neutra  

ou uma cultura case-insensitive

Dim Compare As CompareInfo = _ 

CultureInfo.InvariantCulture.CompareInfo

 

 Dim i As Integer = Compare.IndexOf(strPrincipal, strSecundaria, _ 

 CompareOptions.IgnoreCase)
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados