黑马程序员技术交流社区
标题:
判断字符串是否为空有几种方式?
[打印本页]
作者:
136616244
时间:
2014-4-26 21:52
标题:
判断字符串是否为空有几种方式?
判断字符串是否为空有几种方式?
作者:
Sunday
时间:
2014-4-26 21:58
有这么几种方式:someString=="";或someString.Length==0;或System.String.IsNullOrEmpty(someString);或someString==System.Empty;
用reflector 查看System.String 类型的定义:
知:
(1)System.String.IsNullOrEmpty 定义如下:
public static bool IsNullOrEmpty(string value)
{
if (value != null)
{
return (value.Length == 0);
}
return true;
}
(2)至于System.String 的实例的Length属性,不用管它,Length==0字符串肯定为空;由(1)、(2)知someString.Length==0;和System.String.IsNullOrEmpty(someString)是一样样的;
(3)(不知道什么原因,我的reflector无法查看System.String中的重载运算符“==”),Ms给的“==”重载的说明是:
public static bool operator ==(string a, string b)
Member of System.String
Summary:
Determines whether two specified strings have the same value.
Parameters:
a: The first string to compare, or null.
b: The second string to compare, or null.
Returns:
true if the value of a is the same as the value of b; otherwise, false.
如果用someString==""来用,我觉得可能会经过更多的步骤来判断someString 和空字符串的关系,效率可能会比System.String.IsNullOrEmpty稍低。
(4)System.String.Empty的定义是:
public static readonly String Empty = "";
所以someString==System.Empty 和someString==""应该是一样的。
作者:
z1342802487
时间:
2014-4-26 21:58
方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低:
if(s == null ||"".equals(s));
方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:
if(s == null || s.length() <= 0);
方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二.
if(s == null || s.isEmpty());
方法四: 这是一种比较直观,简便的方法,而且效率也非常的高,与方法二、三的效率差不多:
if (s == null || s == "");
s == null 是非常有必要存在的.
如果 String 类型为null, 而去进行 equals(String) 或 length() 等操作会抛出java.lang.NullPointerException.
并且s==null 的顺序必须出现在前面,不然同样会抛出java.lang.NullPointerException.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2