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

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

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)
 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?