Não diferencia maiúsculas de minúsculas e contém função de string em C#

Muhammad Maisam Abbas 16 fevereiro 2024
  1. Criar função contendo não sensível a maiúsculas e minúsculas com a função string.IndexOf() em C#
  2. Crie uma função que não diferencia maiúsculas de minúsculas com a classe CultureInfo em C#
Não diferencia maiúsculas de minúsculas e contém função de string em C#

Este tutorial apresentará métodos para criar uma função que verifica se uma string contém outra string de forma insensível a maiúsculas e minúsculas em C#.

Criar função contendo não sensível a maiúsculas e minúsculas com a função string.IndexOf() em C#

Quando falamos sobre strings que não diferenciam maiúsculas de minúsculas, o primeiro instinto é pensar sobre as funções string.ToUpper() e string.ToLower(). Porém, não é uma boa abordagem porque muitos caracteres são alterados para letras completamente diferentes no alfabeto após essas funções. Se realmente quisermos criar uma função de verificação que não faça distinção entre maiúsculas e minúsculas em C#, temos que usar algumas abordagens diferentes.

A função string.IndexOf(string1, StringComparison) é usada para obter a primeira ocorrência do parâmetro string1 dentro da string de acordo com o tipo de comparação especificado pelo parâmetro StringComparison. Ele retorna um valor inteiro que representa o primeiro índice onde o parâmetro string1 ocorre dentro da string. O parâmetro StringComparison.OrdinalIgnoreCase especifica para o compilador ignorar o caso ao localizar o índice. O exemplo de código a seguir nos mostra como podemos criar uma função contains(string) sem distinção entre maiúsculas e minúsculas com a função string.IndexOf() e StringComparison.OrdinalIgnoreCase como o parâmetro em C#.

using System;
using System.Globalization;

namespace case_insensitive_string_contains {
  class Program {
    static void Main(string[] args) {
      string mainString = "This is the Main String";
      string wordToCheck = "string";
      bool result = mainString.IndexOf(wordToCheck, StringComparison.OrdinalIgnoreCase) >= 0;
      if (result == true) {
        Console.WriteLine("{0} is present in {1}", wordToCheck, mainString);
      } else {
        Console.WriteLine("{0} is not present in {1}", wordToCheck, mainString);
      }
    }
  }
}

Resultado:

string is present in This is the Main String

Criamos uma função contém não sensível a maiúsculas e minúsculas para determinar se a string wordToCheck estava presente na string mainString com a função string.IndexOf() e StringComparison.OrdinalIgnoreCase como o parâmetro em C#. Armazenamos o resultado da comparação dentro de uma variável booleana result e exibimos a resposta.

Crie uma função que não diferencia maiúsculas de minúsculas com a classe CultureInfo em C#

A classe CultureInfo contém informações sobre diferentes culturas, como nome, estilo de escrita, tipo de calendário usado e muito mais. A função CultureInfo.CompareInfo.IndexOf() é usada para determinar o índice da primeira ocorrência de uma string dentro da outra string da mesma cultura. Podemos usar o CompareOptions.IgnoreCase como um parâmetro para ignorar maiúsculas e minúsculas ao encontrar o índice. O exemplo de código a seguir nos mostra como podemos criar uma função contains(string) que não diferencia maiúsculas de minúsculas com a função CultureInfo.CompareInfo.IndexOf() e CompareOptions.IgnoreCase como o parâmetro em C#.

using System;
using System.Globalization;

namespace case_insensitive_string_contains {
  class Program {
    static void Main(string[] args) {
      string mainString = "This is the Main String";
      string wordToCheck = "string";
      CultureInfo culture = new CultureInfo("");
      bool result =
          culture.CompareInfo.IndexOf(mainString, wordToCheck, CompareOptions.IgnoreCase) >= 0;
      if (result == true) {
        Console.WriteLine("{0} is present in {1}", wordToCheck, mainString);
      } else {
        Console.WriteLine("{0} is not present in {1}", wordToCheck, mainString);
      }
    }
  }
}

Resultado:

string is present in This is the Main String

Criamos uma função contém não sensível a maiúsculas e minúsculas para determinar se a string wordToCheck estava presente na string mainString com a função CultureInfo.CompareInfo.IndexOf() e CompareOptions.IgnoreCase como o parâmetro em C#. Armazenamos o resultado da comparação dentro de uma variável booleana result e exibimos a resposta.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artigo relacionado - Csharp String