我想比較兩個字符串,其中之一可能是null
字符串,我正在使用C#的StringComparison.InvariantCultureIgnoreCase
功能。當遇到null
字符串時,會在運行時引發異常。我應該怎麼做才能比較即使null
字符串?c#中的字符串比較#
0
A
回答
3
還有期權已經給你了,你可以考慮使用StringComparer.InvariantCultureIgnoreCase
代替。 StringComparer
處理空值,而不拋出異常:
using System;
class Test
{
static void Main()
{
StringComparer comparer = StringComparer.InvariantCultureIgnoreCase;
Console.WriteLine(comparer.Compare("a", "A"));
Console.WriteLine(comparer.Compare("a", null));
Console.WriteLine(comparer.Compare(null, "A"));
}
}
0
您可以使用
if (String.IsNullOrEmpty(yourString)) { // If true... }
3
使用使用此的
string.Compare(s1, s2, StringComparison.InvariantCultureIgnoreCase);
好處是,它會返回0(等於)兩個字符串是否null
- 這是預期的結果。
0
當字符串爲空時,您想要發生什麼情況。
你可能只是回落到空字符串是這樣的:(str ?? "").Compare(...)
0
這從一個職位,我記得@喬恩飛碟雙向回答一個問題有關比較:
string myCompareString = "compare me";
if(myCompareString.Equals(myOtherMaybeNullString, StringComparison.InvariantCultureIgnoreCase))
{
// blah blah
}
反對的原因你知道的字符串比較不爲空的字符串那可能是空的(除非你比較2個可能的空字符串)。
0
正如一個額外的選項String.Equals處理空,所以你也可以使用:
使用系統;
class Test
{
static void Main()
{
var a = String.Equals("test", "Test", StringComparison.InvariantCultureIgnoreCase);
var b = String.Equals("test", null, StringComparison.InvariantCultureIgnoreCase);
var c = String.Equals(null, "Test", StringComparison.InvariantCultureIgnoreCase);
var d = String.Equals(null, null, StringComparison.InvariantCultureIgnoreCase);
}
}
相關問題
- 1. 比較字符串指針?比較字符串C
- 2. 字符串比較C#
- 3. 比較字符串C++
- 4. 字符串比較C++
- 5. 字符串比較C - strcmp()
- 6. C++字符串比較
- 7. C#字符串比較?
- 8. 字符串比較 - C
- 9. Objective-C字符串比較
- 10. c#比較2字符串
- 11. C#比較字符串ignoreCase
- 12. C# - 比較字符串
- 13. 比較字符串(C++)
- 14. 字符串比較與目標C中的類比較-C
- 15. Objective-C中的字符串比較
- 16. 如何比較C++中的字符串?
- 17. C中的字符串比較#
- 18. 比較C中的字符串 - strcmp
- 19. 比較C++中的兩個字符串
- 20. c中的字符串比較#
- 21. 比較C#中的兩個字符串
- 22. C++比較c字符串的問題
- 23. C字符串的比較運算符
- 24. 在C++中比較字符串
- 25. 在C#中比較字符串
- 26. 在Objective-C中比較字符串
- 27. 字符串比較C# - 全字匹配
- 28. 字符串/字符比較與python中的按位比較
- 29. 字符串比較
- 30. 比較字符串
你可以先檢查它們是否都是空的String.IsNullOrEmpty – Pabuc 2011-01-25 13:13:27
你正在執行什麼樣的比較?平等還是訂購? – 2011-01-25 13:14:40
等於比較 – Vasanth 2011-01-25 13:25:34