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

    重复发,这个字符CSDN看不到,版猪删了吧
    thx
      

  2.   

    没发现 trim 有什么问题
      

  3.   

    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
    ==================================================
    就应该是全是1111111啊!你觉得应该是什么?
      

  4.   


        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;
        }
      

  5.   

    他是把ASCII码里所有unicode值小于空格的全当成空格了??? 
    ///////////////////////////////////////////////////////////////////
    对啊,确实是这个样子的,因为ASCII中的空格是最小的了,至于unicode 就不清楚了
    可能java的机制就是这个样子了
      

  6.   

    trim确实是将字符 <=('\u0020')的都去掉了,但是那些字符是什么呢?我也不知道