A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Joyuang 黑马帝   /  2012-2-8 22:40  /  1815 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 钱兆元 于 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'); 不能这么写

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

6 个回复

倒序浏览
报的什么错啊?
回复 使用道具 举报



sb.append(name + '\n');
不知道你这句话中的name是什么东东?
name应该是一个字符串吧.
当字符'\n'存入到容器中后,是"...\n" 的形式。
toString转换时不能将其转换成空格即: '' \\n ''
所以跟添加的本意不同。

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
余海龙 发表于 2012-2-8 23:00
sb.append(name + '\n');
不知道你这句话中的name是什么东东?
name应该是一个字符串吧.

我也是网上看到的,我觉得不是那个问题
回复 使用道具 举报
  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是个什么东东?如果是字符串的话是没问题的。
回复 使用道具 举报
彭沛东 发表于 2012-2-8 23:13
楼主:那name是个什么东东?如果是字符串的话是没问题的。

我也不知道。。。我在网上看的代码,也不全,我运行的也没问题,不知道他为什么说错
回复 使用道具 举报
钱兆元 发表于 2012-2-8 23:20
我也不知道。。。我在网上看的代码,也不全,我运行的也没问题,不知道他为什么说错 ...

代码没给全那貌似不代表现在这段代码有错额、有错还是贴出全部代码把。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马