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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 袁培育 中级黑马   /  2012-4-18 10:27  /  2326 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码如下:
class StringBufferTset
{
    public static void main(String[]args)
     {
           StringBuffer sb="abcde";
          replaceMethod(sb);
     }
     public static void replaceMethod(StringBuffer sb)
    {
          System.out.println(sb.setCharAt(1,'w'));
    }
}
便已是为什么会出错,说在System.out.println(sb.setCharAt(1,'w'));不允许使用void类型

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

4 个回复

倒序浏览
void setCharAt(int index, char ch)
          将给定索引处的字符设置为 ch。
查了API是这么写的,没有返回值,所以不能打印~

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
StringBuffer的setCharAt(int index, char ch)方法的是没有返回值的,所以不能打印。
你可以先执行 sb.setCharAt(1,'w')
然后再执行System.out.println(sb);

回复 使用道具 举报
System.out.println(sb.setCharAt(1,'w'));
方法参数传入错误,方法参数类型只接受int型的,你传入的'w'是字符型的
回复 使用道具 举报
StringBuffer sb="abcde";这个也不对吧,Stringbuffer是个缓冲区容器,需要定义缓冲区对象,改成StringBuffer sb=new StringBuffer("abcde");
setCharAt()方法返回值为空,不能打印哦。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马