java trim()为什么没用? String a=" sdf ";a.trim();System.out.print(a); 结果是这样的 sdf 前面还是有空格 为什么??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String a=" sdf ";a = a.trim();System.out.print(a); 这样应该就没有空格了...String a=" sdf";System.out.println(a.trim());因为我们知道对于String型的数据,定义之后就不会改变了你只是对a调用了trim()方法,而没有引用指向了改变后得到的新的数据,所以在对a进行输出时,还是原来的数据a " sdf " 字符串a 是不会改变的 因为string类型的实例被定义后就存储在内存堆中的串池中 如果在程序中使用非new的方法定义字符串的话 系统会默认在串池中进行查找 如果找到则直接返回引用 这样就会大大减少系统的开销 但有一个限制就是串池中的字符串不能被修改 比如你对一个字符串变量做 substring() trim() 等操作后 这些方法都会返回给你一个新串的引用 原串是不会改变的 JAVA如何开发PDF阅读器 新手提问 字符串组装问题 求算法 谢谢 汉字转化拼音 toString()方法 如何在application里面使用功能和alert()一样的组件呢? String 问题 关于I/O的一些疑惑: awt 與 swing 的區分 求大神帮帮 nextLine带来的麻烦 【100分请教】请问java怎样定时点击某个网页上的某个按钮?
a = a.trim();
System.out.print(a);
String a=" sdf";
System.out.println(a.trim());
因为我们知道对于String型的数据,定义之后就不会改变了
你只是对a调用了trim()方法,而没有引用指向了改变后得到的新的数据,
所以在对a进行输出时,还是原来的数据a " sdf "
因为string类型的实例被定义后就存储在内存堆中的串池中 如果在程序中使用非new的方法定义字符串的话 系统会默认在串池中进行查找 如果找到则直接返回引用 这样就会大大减少系统的开销 但有一个限制就是串池中的字符串不能被修改
比如你对一个字符串变量做 substring() trim() 等操作后 这些方法都会返回给你一个新串的引用 原串是不会改变的