String a="   sdf  ";
a.trim();
System.out.print(a);
        
结果是这样的   sdf  
前面还是有空格 为什么???

解决方案 »

  1.   

    String a="   sdf  ";
    a = a.trim();
    System.out.print(a);
      

  2.   

    这样应该就没有空格了...
    String a="    sdf";
    System.out.println(a.trim());
    因为我们知道对于String型的数据,定义之后就不会改变了
    你只是对a调用了trim()方法,而没有引用指向了改变后得到的新的数据,
    所以在对a进行输出时,还是原来的数据a    "  sdf   "
      

  3.   

    字符串a 是不会改变的 
    因为string类型的实例被定义后就存储在内存堆中的串池中 如果在程序中使用非new的方法定义字符串的话 系统会默认在串池中进行查找 如果找到则直接返回引用 这样就会大大减少系统的开销 但有一个限制就是串池中的字符串不能被修改  
    比如你对一个字符串变量做 substring() trim() 等操作后  这些方法都会返回给你一个新串的引用 原串是不会改变的