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 稍快。

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

  • 相关阅读:
    SpringIoC和SpringMVC的快速入门
    Swoole引擎原理的快速入门干货
    Windowns 10打开此电脑缓慢问题的一种解决办法
    CentOS下使用Postfix + Dovecot + Dnsmasq搭建极简局域网邮件系统
    CentOS7.2 创建本地YUM源和局域网YUM源
    CentOS 7.2 安装配置Samba服务器
    Zookeeper 日志输出到指定文件夹
    MySQL索引优化-from 高性能MYSQL
    Transaction事务注解和DynamicDataSource动态数据源切换问题解决
    Redis使用经验之谈
  • 原文地址:https://www.cnblogs.com/liuguangfa/p/5143009.html
Copyright © 2011-2022 走看看