C#字符串的比較

.NET Framework 提供多個方法來比較字符串的值。下表列出並描述了這些值比較方法。

方法名 使用

String.Compare

比較兩個字符串的值。返回整數值。

String.CompareOrdinal

比較兩個字符串而不考慮本地區域性。返回整數值。

String.CompareTo

將當前字符串對象與另一個字符串進行比較。返回整數值。

String.StartsWith

確定一個字符串是否以傳遞的字符串開頭。返回布爾值。

String.EndsWith

確定一個字符串是否以傳遞的字符串結尾。返回布爾值。

String.Equals

確定兩個字符串是否相同。返回布爾值。

String.IndexOf

返回字符或字符串的索引位置,索引位置從正在檢查的字符串的開頭開始。返回整數值。

String.LastIndexOf

返回字符或字符串的索引位置,索引位置從正在檢查的字符串的結尾開始。返回整數值。

Compare

String.Compare 方法提供了將當前字符串對象與另一個字符串或對象進行全面比較的方法。此方法識別區域性。可以使用此函數來比較兩個字符串或兩個字符串的子串。另外,還提供了考慮或忽略大小寫與區域性差異的重載。下表說明了此方法可能返回的三個整數值。

值類型 條件

負整數

strA 小於 strB

0

strA 等於 strB

正整數

- 或 -

1

此實例大於 value

- 或 -

value 是一個空引用(在 Visual Basic 中爲 Nothing)。

下面的示例使用 Compare 方法來確定兩個字符串的相對值。

string MyString = "Hello World!"; Console.WriteLine(String.Compare(MyString, "Hello World?"));

此示例將 -1 顯示到控制檯。

前一個示例默認情況下區分區域性。如要執行不區分區域性的字符串比較,請使用 String.Compare 方法的重載,此方法重載允許通過提供 culture 參數指定要使用的區域性。若要查看演示如何使用 String.Compare 方法執行不區分區域性的比較的示例,請參見執行不區分區域性的字符串比較

CompareOrdinal

String.CompareOrdinal 方法比較兩個字符串對象而不考慮本地區域性。此方法的返回值與前一個表中的 Compare 方法返回的值相同。

下面的示例使用 CompareOrdinal 方法來比較兩個字符串的值。

string MyString = "Hello World!"; Console.WriteLine(String.CompareOrdinal(MyString, "hello world!"));
此示例將 -32 顯示到控制檯。

CompareTo

String.CompareTo 方法將當前字符串對象封裝的字符串與另一個字符串或對象進行比較。此方法的返回值與前一個表中的 Compare 方法返回的值相同。

下面的示例使用 CompareTo 方法將 MyString 對象與 OtherString 對象進行比較。

String MyString = "Hello World"; String OtherString = "Hello World!"; int MyInt = MyString.CompareTo(OtherString); Console.WriteLine( MyInt );

此示例將 1 顯示到控制檯。

String.CompareTo 方法的所有重載在默認情況下都會執行區分區域性和區分大小寫的比較。未提供此方法的允許執行不區分區域性的比較的重載。爲了使代碼清楚,建議您使用 String.Compare 方法,爲區分區域性的操作指定 CultureInfo.CurrentCulture 或爲不區分區域性的操作指定 CultureInfo.InvariantCulture。若要查看演示如何使用 String.Compare 方法執行區分區域性和不區分區域性這兩種比較的示例,請參見執行不區分區域性的字符串比較

Equals

String.Equals 方法可以輕易地確定兩個字符串是否相同。這個區分大小寫的方法返回布爾值 TrueFalse。它可以在現有的類中使用,這一點將在下一個示例中闡釋。下面的示例使用 Equals 方法來確定一個字符串對象是否包含詞組“Hello World”。

string MyString = "Hello World"; Console.WriteLine(MyString.Equals("Hello World"));

此示例將 True 顯示到控制檯。

此方法也可用作靜態方法。下面的示例使用靜態方法比較兩個字符串對象。

string MyString = "Hello World"; string YourString = "Hello World"; Console.WriteLine(String.Equals(MyString, YourString));
此示例將 True 顯示到控制檯。

StartsWith 和 EndsWith

可以使用 String.StartsWith 方法來確定一個字符串對象是否以構成另一個字符串的同一組字符開始。如果當前字符串對象以傳遞的字符串開始,則這個區分大小寫的方法返回 true,否則返回 false。下面的示例使用此方法來確定一個字符串對象是否以“Hello”開始。

string MyString = "Hello World"; Console.WriteLine(MyString.StartsWith("Hello"));

此示例將 True 顯示到控制檯。

String.EndsWith 方法將傳遞的字符串與位於當前字符串對象結尾處的字符進行比較。它也返回布爾值。下面的示例使用 EndsWith 方法檢查字符串的結尾。

string MyString = "Hello World"; Console.WriteLine(MyString.EndsWith("Hello"));

IndexOf 和 LastIndexOf

可以使用 String.IndexOf 方法來確定特定字符在字符串中第一次出現的位置。這個區分大小寫的方法從字符串的開頭開始計數,並使用從零開始的索引返回傳遞的字符的位置。如果無法找到該字符,則返回值 –1。

下面的示例使用 IndexOf 方法搜索字符“l”在字符串中第一次出現的位置。

string MyString = "Hello World"; Console.WriteLine(MyString.IndexOf('l'));

此示例將 2 顯示到控制檯。

String.LastIndexOf 方法類似於 String.IndexOf 方法,不同之處在於它返回特定字符在字符串中最後出現的位置。它區分大小寫,並使用從零開始的索引。

下面的示例使用 LastIndexOf 方法來搜索字符“l”在字符串中最後出現的位置。

string MyString = "Hello World"; Console.WriteLine(MyString.LastIndexOf('l'));

此示例將 9 顯示到控制檯。

當與 String.Remove 方法一起使用時,這兩種方法都非常有用。可以使用 IndexOfLastIndexOf 方法來檢索字符的位置,然後將該位置提供給 Remove 方法以便移除字符或移除以該字符開頭的單詞。

作者:佚名
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章