黑马程序员技术交流社区

标题: 关于StringBuffer的错误 [打印本页]

作者: Joyuang    时间: 2012-2-8 22:40
标题: 关于StringBuffer的错误
本帖最后由 钱兆元 于 2012-2-8 23:24 编辑

StringBuffer sb = new StringBuffer();
sb.append("Name: ");  
sb.append(name + '\n');  
sb.append("!");  
...  
String s = sb.toString();


在网上看到一篇文章说这段代码错误,可是运行没问题,这段代码哪里错了?

明白了,这不是错,是性能问题
sb.append(name + '\n'); 不能这么写

作者: 孙汇川    时间: 2012-2-8 22:47
报的什么错啊?
作者: 余海龙    时间: 2012-2-8 23:00



sb.append(name + '\n');
不知道你这句话中的name是什么东东?
name应该是一个字符串吧.
当字符'\n'存入到容器中后,是"...\n" 的形式。
toString转换时不能将其转换成空格即: '' \\n ''
所以跟添加的本意不同。
作者: Joyuang    时间: 2012-2-8 23:01
余海龙 发表于 2012-2-8 23:00
sb.append(name + '\n');
不知道你这句话中的name是什么东东?
name应该是一个字符串吧.

我也是网上看到的,我觉得不是那个问题
作者: 彭沛东    时间: 2012-2-8 23:13
  1. class  Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 StringBuffer sb = new StringBuffer();
  6.                         sb.append("Name: ");  
  7.                         sb.append("name" + '\n');  
  8.                         sb.append("!");  
  9.                 String s = sb.toString();
  10.                 System.out.println(s);
  11.         }
  12. }
复制代码
楼主:那name是个什么东东?如果是字符串的话是没问题的。

作者: Joyuang    时间: 2012-2-8 23:20
彭沛东 发表于 2012-2-8 23:13
楼主:那name是个什么东东?如果是字符串的话是没问题的。

我也不知道。。。我在网上看的代码,也不全,我运行的也没问题,不知道他为什么说错
作者: 彭沛东    时间: 2012-2-8 23:23
钱兆元 发表于 2012-2-8 23:20
我也不知道。。。我在网上看的代码,也不全,我运行的也没问题,不知道他为什么说错 ...

代码没给全那貌似不代表现在这段代码有错额、有错还是贴出全部代码把。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2