黑马程序员技术交流社区

标题: 初学者 请问这个代码有啥问题? [打印本页]

作者: @coffee    时间: 2015-1-5 12:54
标题: 初学者 请问这个代码有啥问题?
class  StringBufferDemo
{
        public static void sop(Object str)
        {
                System.out.println(str);
        }
        public static void main(String[] args)
        {               
               
                StringBuffer sb1 = new StringBuffer();
                sb1.append(34).append("asd").append(false);
                //sb1.charAt(0);
                //sb1.length();
                sb1.indexOf('s');
                sop(sb1.length());
        }
}
作者: 清诗纪事    时间: 2015-1-5 20:15
你可以把StringBuffer理解为一个容器,append是往容器内添加元素的,indexOf(s),判断容器内是否有s这个元素,如果有返回下标,length是容器大小
作者: 清诗纪事    时间: 2015-1-5 20:28
  sb1.indexOf('s');这一句改成sb1.indexOf("s");
作者: @coffee    时间: 2015-1-5 22:06
清诗纪事 发表于 2015-1-5 20:28
sb1.indexOf('s');这一句改成sb1.indexOf("s");

:handshake
作者: reyzarc    时间: 2015-1-5 22:42
已经有人解决了……
作者: -律-    时间: 2015-1-5 22:58
补充一下为什么

sb1.indexOf('s');这一句要改成sb1.indexOf("s");

indexOf(int ch)
indexOf(int ch, int fromIndex)
indexOf(String str)
indexOf(String str, int fromIndex)

('s')表示的是字符,而indexOf()方法接受的是字符串,所以要用到("")

另外你取得了s在字符串缓冲区对象中所在的位置,但没写输出打印的代码

            int flag = sb1.indexOf("s");
            sop(sb1.length());
            sop(flag);

强迫症把它补上了. . . .  .
作者: @coffee    时间: 2015-2-4 00:18
-律- 发表于 2015-1-5 22:58
补充一下为什么

sb1.indexOf('s');这一句要改成sb1.indexOf("s");

谢啦!!!
作者: 梁小刀11    时间: 2015-2-9 23:00
谢谢分享!!!




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