以下是代码:
String str=" ";
System.out.println("("+str+")");
str=str.trim();
System.out.println(str==null);
System.out.println(str=="");
System.out.println(str.length());
System.out.println("("+str+")");
,输出为:
( )
false
false
0
()
Multiple spaces.trim()
的回归特征是什么?显然它不能 null 。
答案 0 :(得分:5)
不是它的null
空字符串。 ""
。
那是
的原因System.out.println(str==null);
返回false
。
但是在
的情况下System.out.println(str=="");
使用
str.equals("")
它将返回true
。
如果您想知道为什么
System.out.println(str=="");
返回false
;
阅读How do I compare strings in Java?
要么,
Java String.equals versus ==
或搜索谷歌的字符串比较,这是一个非常受欢迎的话题。
答案 1 :(得分:1)
public String trim()
返回字符串的副本,省略前导和尾随空格。
如果此String对象表示空字符序列,或者此String对象表示的字符序列的第一个和最后一个字符的代码都大于'\u0020'
(空格字符),则引用此String对象归还。
否则,如果字符串中没有代码大于'\u0020'
的字符,则会创建并返回表示空字符串的新String对象。
否则,让k为代码大于'\u0020'
的字符串中第一个字符的索引,让m为代码大于{{1}的字符串中最后一个字符的索引}。创建一个新的String对象,表示该字符串的子字符串,该字符串以索引为k的字符开头,以索引为m的字符结尾,即'\u0020'
的结果。
此方法可用于从字符串的开头和结尾修剪空格(如上所述)。
返回: 删除了前导和尾随空格的此字符串的副本,如果没有前导或尾随空格,则为此字符串。
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
答案 2 :(得分:0)
如果您查找有关PreparedStatement
的某些信息,请删除相关字符串开头和结尾处的任何空格或字符,因此,如果您使用.trim()
,则可能是同样
.trim()