为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白衣染霜花 2019-03-05 20:06:10
st是字符串的名称,trim()方法用来去掉字符串中的空格。只是不太明白st.trim().equals("")与"".equals(st)的区别,这两个语句都是判断st是否为空,那么前一个跟后一个相比效果有什么不一样呢?盼高手解答
查看完整描述

4 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

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

查看完整回答
反对 回复 2019-03-30
?
隔江千里

TA贡献1906条经验 获得超10个赞

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

查看完整回答
反对 回复 2019-03-30
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

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



查看完整回答
反对 回复 2019-03-30
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

"".equals(st)好象不能用吧```

""本身不是一个字符串``不能调用equals方法````


查看完整回答
反对 回复 2019-03-30
  • 4 回答
  • 0 关注
  • 975 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信