zoukankan      html  css  js  c++  java
  • 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 稍快。

      当然,这种字符串为空的判断方法,在平常的编程过程中,效率差别是非常小,如果不是十分复杂的情况下,可以忽略。但尽量使用效率高的方法。

  • 相关阅读:
    京东商城招聘自动调价系统架构师 T4级别
    MVVM架构~Knockoutjs系列之对象与对象组合
    MVVM架构~Knockoutjs系列之text,value,attr,visible,with的数据绑定
    MVVM架构~mvc,mvp,mvvm大话开篇
    JS~delegate与live
    DDD~我们应该知道的Model,DomainModel和ViewModel
    uva-11111 Generalized Matrioshkas
    盒子模型(非常形象)
    SQL Server提高并发查询效率
    uva-11234 Expressions
  • 原文地址:https://www.cnblogs.com/liuguangfa/p/5143009.html
Copyright © 2011-2022 走看看