一定不要使用 == 运算符检测两个字符串是否相等 ! 这个运算符只能够确定两个字串是否放置在同一个位置上 。 当然 , 如果字符串放置在同一个位置上 , 它们必然相等。 但是 ,完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上。
如果虚拟机始终将相同的字符串共享 , 就可以使用 = 运算符检测是否相等。 但实际上只有字符串常量是共享的, 而 + 或 substring等操作产生的结果并不是共享的。 因此 , 千万不要使甩 = = 运算符测试字符串的相等性 , 以免在程序中出现糟糕的 bug 。 从表面上看 , 这种bug 很像随机产生的间歇性错误 。
空串""是长度为0的字符串。
检查字符串是否为空:
if(str.length() == 0)
//或
if(str.equals(""))
空串是java对象,有自己的串长度(0)和内容(空)。不过,String变量还可以存放一个特殊的值,名为null,这表示目前没有任何对象与该变量关联;
检查字符串是否为null:
if (str == null)
检查字符串既不是null也不为空串:
if (str !=null && str.length() != 0)
判断