对于这种类型,他都会当成空格trim掉????
查看源包里的定义:
他是把ASCII码里所有unicode值小于空格的全当成空格了???
但这个字符怎么过滤掉??
按他定义:
String trim()
Returns a copy of the string, with leading and trailing whitespace omitted.
他是开头和结尾的空格,空格的定义应该不是这样子的吧
public static void main(String args[]) {
String a= "1111111";
System.out.println("aaaa");
System.out.println("trim前:"+a);
System.out.println("trim后"+a.trim());
}
你会发现结果全是11111
查看源包里的定义:
他是把ASCII码里所有unicode值小于空格的全当成空格了???
但这个字符怎么过滤掉??
按他定义:
String trim()
Returns a copy of the string, with leading and trailing whitespace omitted.
他是开头和结尾的空格,空格的定义应该不是这样子的吧
public static void main(String args[]) {
String a= "1111111";
System.out.println("aaaa");
System.out.println("trim前:"+a);
System.out.println("trim后"+a.trim());
}
你会发现结果全是11111
thx
String a= "1111111";
System.out.println("aaaa");
System.out.println("trim前:"+a);
System.out.println("trim后"+a.trim());
}
你会发现结果全是11111
==================================================
就应该是全是1111111啊!你觉得应该是什么?
public String trim() {
int len = count;
int st = 0;
int off = offset; /* avoid getfield opcode */
char[] val = value; /* avoid getfield opcode */ while ((st < len) && (val[off + st] <= ' ')) {
st++;
}
while ((st < len) && (val[off + len - 1] <= ' ')) {
len--;
}
return ((st > 0) || (len < count)) ? substring(st, len) : this;
}
///////////////////////////////////////////////////////////////////
对啊,确实是这个样子的,因为ASCII中的空格是最小的了,至于unicode 就不清楚了
可能java的机制就是这个样子了