当判断用户是否输入用户名或密码时,我们常用TextUtils.isEmpty()方法来判断;但有时也可以用这个equals()方法,到底哪个方法更好呢?
TextUtils.isEmpty()api解释说:Returns true if the string is null or 0-length 也就是说输入框是空值或者你就敲了几下空格键该方法都会返回true
equals()equals比较的是两个引用的值是不是相同,例如:String a = "123";String b = "123"; 这里的123就是引用的值,也就是说:判断输入内容时,使用equals()仅仅能判断是否返回 0-length,不能判断是否未null, 需加上 ==判断。String s1 = null;String s2 = null;用equals()判断肯定时错的。
==比较的是基本类型byte,short,int,long,char,float,double,==比较的是两个引用是不是指向同一个内存地址,例如:String a = "123";String b = "123"; ==比较的是a、b的内存地址。好像equals()和==都可以判断这个例子是正确的,但意义不一样。String a=new String("abc"); String b=new String"abc");用==肯定是报错的,String s1 = null;String s2 = null;==判断就是对的。
总结来说:也就是new一个新对象必须用equals()判断,基本数据类型必须用==判断。两者合起来才能判断输入EditText。