在 C# 中不区分大小写的字符串包含函数

Muhammad Maisam Abbas 2024年2月16日
  1. 在 C# 中使用 string.IndexOf() 函数创建不区分大小写的包含函数
  2. 在 C# 中使用 CultureInfo 类创建不区分大小写的包含函数
在 C# 中不区分大小写的字符串包含函数

本教程将介绍如何在 C# 中以不区分大小写的方式创建一个检查字符串是否包含另一个字符串的函数。

在 C# 中使用 string.IndexOf() 函数创建不区分大小写的包含函数

当我们谈论不区分大小写的字符串时,第一个直觉是考虑 string.ToUpper()string.ToLower() 函数。但是,这不是一个好方法,因为在执行这些函数后,许多字符会会变成完全不同的字母。如果我们确实想在 C# 中创建不区分大小写的包含检查函数的代码,则必须使用一些不同的方法。

string.IndexOf(string1, StringComparison) 函数用于根据 StringComparison 参数指定的比较类型,获取 string1 参数在 string 里面的第一次出现。它返回一个整数值,该整数值表示在 string 内部出现 string1 参数的第一个索引。StringComparison.OrdinalIgnoreCase 参数指定编译器在查找索引时忽略大小写。以下代码示例向我们展示了如何在为 C# 中使用 string.IndexOf() 函数和 StringComparison.OrdinalIgnoreCase 作参数,创建不区分大小写的 contains(string) 函数。

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);
      }
    }
  }
}

输出:

string is present in This is the Main String

我们创建了一个不区分大小写的包含函数,使用 string.IndexOf() 函数和 StringComparison.OrdinalIgnoreCase 作为 C# 中的参数来确定 mainString 字符串中是否存在 wordToCheck 字符串。我们将比较结果存储在布尔变量 result 中并显示答案。

在 C# 中使用 CultureInfo 类创建不区分大小写的包含函数

CultureInfo包含有关不同文化的信息,例如名称,写作风格,使用的日历类型等等。CultureInfo.CompareInfo.IndexOf() 函数用于确定一个字符串在相同区域性的另一个字符串中首次出现的索引。我们可以使用 CompareOptions.IgnoreCase 作为参数来查找时忽略大小写索引。以下代码示例向我们展示了如何使用 CultureInfo.CompareInfo.IndexOf() 函数和 CompareOptions.IgnoreCase 作为 C# 中的参数,创建不区分大小写的 contains(string) 函数。

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);
      }
    }
  }
}

输出:

string is present in This is the Main String

我们创建了一个不区分大小写的包含函数来确定 wordToCheck 字符串是否存在于 mainString 字符串中,并以 CultureInfo.CompareInfo.IndexOf() 函数和 CompareOptions.IgnoreCase 作为 C# 中的参数。我们将比较结果存储在布尔变量 result 中并显示答案。

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

相关文章 - Csharp String