C# 判斷字符串為空的4種方法及效率


在程序開發過程中,少不了要處理字符串,並且常常要判斷字符串是否為空,通常有哪些判斷方法,以及不同方法的效率又怎么樣?

  在 C# 中,通常有三種判斷字符串是否為空的方法,下面分別探討。

 

  1、str.Length == 0

  使用 str.Length == 0,在三種方法中效率是最高的,但容易產生異常。當字符串為空的時候就會產生異常,如

  string str; 或者 string str = null;

  if(str.Length == 0) //產生異常

  此時,就會產生對象不能為空的異常。

 

  如果事先初始化 str,如:

  string str = "a-購物、商場打折";

  if(str.Length == 0) //不產生異常

  此時,則不會產生異常。因此,如果事先可以斷定字符串在任何情況下都不為空,可以用此方法,從而提高效率;反之,不建議使用。

 

  2、str == string.Empty 或 str == ""

  這兩種方法效率比 str.Length == 0 稍低一點,但字符為空時不會產生異常。所以,在事先不初始化變量,或不能斷定變量在程序運行過程中一定不為空,可以使用此方法。

  可能細心的你會問,str == string.Empty 和 str == "",哪個效率會更高一點?記得在《C# 多個字符串連接的效率》一文中具體探討過,有興趣可以看一看,不過在此可以先告訴你:str == string.Empty 略高一點

 

  3、str == string.IsNullOrEmpty

  Null 通常用來判斷對象是否為空,所以這個方法既可以判斷字符串(str)這個對象是否存在,也可以判斷字符串為空(empty 或 "")。它與 str == string.Empty 比較,效率高低如何呢?舉例如下:

  1)字符串為空時

  string str = null;
  if (str == string.Empty)
  {
  }

  if (string.IsNullOrEmpty(str))
  {
  }


  2)字符串不為空時

  string str = "a-購物、商場打折";
  if (str == string.Empty)
  {
  }

  if (string.IsNullOrEmpty(str))
  {
  }

  通過執行比較,兩種情況,string.IsNullOrEmpty(str) 都比 str == string.Empty 稍快。

  當然,這種字符串為空的判斷方法,在平常的編程過程中,效率差別是非常小,如果不是十分復雜的情況下,可以忽略。但盡量使用效率高的方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM