在 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