st.trim().equals("")与"".equals(st)的区别

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:41:18
st是字符串的名称,trim()方法用来去掉字符串中的空格。只是不太明白st.trim().equals("")与"".equals(st)的区别,这两个语句都是判断st是否为空,那么前一个跟后一个相比效果有什么不一样呢?盼高手解答

从对象的角度看,st.trim()产生了一个新的对象,这个新的对象调用了equals("")方法,所以这个表达式一个有三个对象;而"".equals(st)中只有两个对象。
从结果看,如果字符串st不是空,即st由空格组成时,st.trim().equals("")的结果为真,而"".equals(st)的结果为假。
如果字符串st为空,则这两个表达式的结果就是一样的。

trim()方法去掉一个字符串首尾的空白字符。假设有一个字符串s = " "(3个空格),那么s.trim()后返回的就是""。
但是使用st.trim().equals("")会出现一个问题,当st是传入的参数时有可能出现null值,当然也就没有trim()和equals()方法,这时如果没检验null值则会出现程序错误.

而"".equals(st)比较的时候如果st为null值也可以得出正确的结果,这是它们最大的不同.

trim()方法去掉一个字符串首尾的空白字符。假设有一个字符串s = " "(3个空格),那么s.trim()后返回的就是""。
你可以简单的做个实验,就知道两个的不同了
String s = " ";
if(s.trim().equals(""))
System.out.println("s.trim()后,字符串是空字符串");
if("".equals(s))
System.out.println("字符串是空字符串");
运行后发现只有第一句被打印出来了,说明trim去掉了字符串中所有空白的字符。

"".equals(st)好象不能用吧```
""本身不是一个字符串``不能调用equals方法````