sop("("+s+")");因为字符串是不可变的,在字符串s前面和尾部加上了 ‘(’和‘)’,就拼接出来另一个String对象"( ad cd )", 把该对象的地址传入sop方法,而不是传入原来 s 的地址原,所以字符串s得不到 sop 方法处理,而是处理了临时创建的字符串"( ad cd )"。不是你的sop方法有问题,而是你传字符串对象是出错了。作者: 刘少伟 时间: 2012-4-10 21:13
start记录从左边起第一个非空格字符的下标,初始值是最左边(首位),即0
end记录从右边起第一个非空格字符的下标,初始值是最右边(末位),即str.length()-1
所以start从0起,逐次向右移动判断当前字符是否空格,如果是空格,继续往前,直到遇到第一个非空格字符,记录其下标。end同理。作者: newlaw2013 时间: 2012-4-10 21:38
以下代码是源码:
/**
* Copies this string removing white space characters from the beginning and
* end of the string.
*
* @return a new string with characters <code><= \\u0020</code> removed from
* the beginning and the end.
*/
public String trim() {
int start = offset, last = offset + count - 1;
int end = last;
while ((start <= end) && (value[start] <= ' ')) {
start++;
}
while ((end >= start) && (value[end] <= ' ')) {
end--;
}
if (start == offset && end == last) {
return this;
}
return new String(start, end - start + 1, value);
}