java核心卷笔记--P48字符串3.6.5

时间:2021-08-20 03:59:18

一定不要使用 == 运算符检测两个字符串是否相等 ! 这个运算符只能够确定两个字串是否放置在同一个位置上 。 当然 , 如果字符串放置在同一个位置上 , 它们必然相等。 但是 ,完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上。

如果虚拟机始终将相同的字符串共享 , 就可以使用 = 运算符检测是否相等。 但实际上只有字符串常量是共享的, 而 + 或 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)

判断