对于这种类型,他都会当成空格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

解决方案 »

  1.   

    http://community.csdn.net/Expert/TopicView3.asp?id=5330811
    大家看这个地址:CSDN把这种字符全删 了
      

  2.   

    public String trim()返回字符串的副本,忽略前导空白和尾部空白。 
    如果此 String 对象表示一个空字符序列,或者此 String 对象表示的字符序列的第一个和最后一个字符的代码都大于 '\u0020'(空格字符),则返回对此 String 对象的引用。 否则,若字符串中没有代码大于 '\u0020' 的字符,则创建并返回一个表示空字符串的新的 String 对象。 否则,假定 k 为代码大于 '\u0020' 的第一个字符的索引,m 为代码大于 '\u0020' 的最后一个字符的索引。创建一个新的 String 对象,它表示此字符串中从索引 k 处的字符开始,到索引 m 处的字符结束的子字符串,也就是 this.substring(k, m+1) 的结果。 此方法用于截去字符串从头到尾的空白(如上面所定义)。 
    返回:
    此字符串移除了前导和尾部空白的副本,如果没有前导和尾部空白,则返回此字符串///////////////////////////////////////
    这是他的定义,你可能理解的不对,它不是去掉了空格,而是返回了一个新的string对象,或原String对象的引用。
      

  3.   

    楼上的正解,,,,因为CSDN,把这种字符都都过滤掉了,所以看不到这个字符了,,,
    回到问题:String.trim定义:
    第一个和最后一个字符的代码都大于 '\u0020'(空格字符)
    但这样定义可能太泛了点,,如下面这个:
    可见字符他也当成空格了
      

  4.   

    其实他的意思是将unicode小于‘\u0020’的都去掉,但让只限于字符串的开头和末尾,那些字符(<='\u0020')都将被认为成空格或空白,如tab键
      

  5.   

    那是你不看文档造成的,API中已经明确的说明了小于20的字符都认为是空白的:
    If this String object represents an empty character sequence, or the first and last characters of character sequence represented by this String object both have codes greater than '\u0020' (the space character), then a reference to this String object is returned. 
    如果你只想去除空格,自己写一个呗