短短的两个语句怎么呢变成这么多呢?问题的原因就在String类的不可变性上,而java程序为了方便简单的字符串使用方式对+操作符进行了重载,而这个重载的处理可能因此误导很多对java中String的使用。 下面给出一个完整的代码: 1. public class Perf { 2. public static String detab1(String s) 3. { 4. if (s.indexOf('\t') == -1) 5. return s; 6. String res = ""; 7. int len = s.length(); 8. int pos = 0; 9. int i = 0; 10. for (; i < len && s.charAt(i) == '\t'; i++) 11. { 12. res += " "; 13. pos += 8; 14. } 15. for (; i < len; i++) 16. { 17. char c = s.charAt(i); 18. if (c == '\t') { 19. do {