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

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

时间: 2024-10-03 03:08:17

C# 判断字符串为空的4种方法及效率的相关文章

C# 判断字符串为空有哪几种方法

Length法:bool isEmpty = (str.Length == 0);Empty法:bool isEmpty = (str == String.Empty);General法:bool isEmpty = (str == ""); 2.深入内部机制: 要深入探讨其内部机制,需要查看.Net的源代码,同样有三种方法供参考: Rotor法:一个不错的选择就是微软的Rotor,这是微软的一个源代码共享项目. Mono法:另一个不错的选择当然就是真正的开源项目Mono啦! Refl

***PHP中判断变量为空的几种方法

总结PHP中,"NULL" 和 "空" 是2个概念. isset  主要用来判断变量是否被初始化过empty  可以将值为 "假"."空"."0"."NULL"."未初始化" 的变量都判断为TRUEis_null  仅把值为 "NULL" 的变量判断为TRUEvar == null  把值为 "假"."空".

java中判断字符串是否相等有两种方法:

1.用“==”运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";String b="abc",那么a==b将返回true.这是因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象:再比如:String a=new String("abc");String b=new String("abc");那么a==b将返回false,因为a和b指向不同的对

PHP中判断变量为空的几种方法小结

isset  主要用来判断变量是否被初始化过empty  可以将值为 "假"."空"."0"."NULL"."未初始化" 的变量都判断为TRUEis_null  仅把值为 "NULL" 的变量判断为TRUEvar == null  把值为 "假"."空"."0"."NULL" 的变量都判断为TRUEvar =

Java 判断字符串是否为空的四种方法、优缺点与注意事项

以下是Java 判断字符串是否为空的四种方法: 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equals(s));方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法: if(s == null || s.length() <= 0);方法三: JavaSE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二. if(s == null || s.isEmpty()); 方法四:

ios 判断字符串为空和只为空格解决办法

ios 判断字符串为空和只为空格解决办法- (BOOL)isBlankString:(NSString *)string{ if (string == nil) { return YES; } if (string == NULL) { return YES; } if ([string isKindOfClass:[NSNull class]]) { return YES; } if ([[string stringByTrimmingCharactersInSet:[NSCharacterS

php变量判断为空的几种方法

1.isset  主要用来判断变量是否被初始化过 注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右 2.empty  可以将值为 "假"."空"."0"."NULL"."未初始化" 的变量都判断为TRUE 3. is_null  仅把值为 "NULL" 的变量判断为TRUE 4.var == null  把值为 "假&q

判断字符串为空

if(TextUtils.isEmpty(item)){ Toast.makeText(this,"为空", Toast.LENGTH_SHORT).show(); } 判断字符串为空

【代码备忘】VC判断自己窗口的另一种方法

欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 FindWindow就不说了,这说 的是另一种:GetProp 代码也差不多: 查询... HWND hWndPrevious = ::GetWindow(::GetDesktopWindow(), GW_CHILD); while (::IsWindow(hWndPrevious)) { if (::GetProp(hWndPrevious, _FLAG)) { if (::IsI