st.trim().equals("")与"".equals(st)的区别
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()后返回的就是""。
你可以简单的做个实验,就知道两个的不同了
String s = " ";
if(s.trim().equals(""))
System.out.println("s.trim()后,字符串是空字符串");
if("薯段".equals(s))
System.out.println("字符串纯手孝是空字符串");
运行后发现做稿只有第一句被打印出来了,说明trim去掉了字符串中所有空白的字符。
""毕指旅.equals(st)好象不能用吧```
""逗山本身不是一个字符串``不能调手凳用equals方法````
trim()方法去掉一个字符串首尾的空白字符。假设有一个字符串s = " "(3个空格),那么s.trim()后返回的就是""。
但是使用st.trim().equals("")会出现一个问题,当st是传入的参数时有可能出现null值,当然也就没有trim()和equals()方法,这时如果没检验null值则会出现程序错清滑简误.
而"".equals(st)比较的时候如果让首st为null值也可以得出正确的结果,这是答裤它们最大的不同.