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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© shi0000 中级黑马   /  2014-4-16 22:55  /  1176 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

StringBuffer与StringBuilder有什么不同啊,重点是后者不明白

2 个回复

倒序浏览
JDK1.5后提供一个StringBuilder类,它的用法与StringBuffer一样;StringBuilder它是线程异步(线程不安全)
StringBuffer它是线程同步(线程安全的)
回复 使用道具 举报
/*
* StringBuffer是字符串缓冲区
* 是一个容器
* 三个特点:
*1, 而且长度是可变化的.
*2,可以直接操作多个数据类型
*3,最终会同过toString方法变成字符串
*
*
* 1:储存.
*                 StringBuffer append():将指定数据作为参数添加到已有的数据结尾处.
*                 StringBuffer insert(index,数据):可以将数据插入到指定的index位置.
* 2:删除.
*                 StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end.(也叫包含头,不含尾).
*                 StringBuffer deleteCharAt(index):删除指定位置的字符/
* 3:获取.
*                 char charAt(int,index)  //int ch =s1.charAt(3);格式输出
*                 int indexOf(String,str)   //获取角标值
*                 int lastIndexOf(String,str)
*                 int length()
*                 String subtring(int start,int end)
* 4:修改.
*                 SringBuffer replace(start,end,string);
*                 void setChaarAt(int index, char ch);
*
*                 start(丝大特)  起始    ent(哎特) 结束,终止
*
* 5:反转
*                 StringBuffer reverse();
*                
* reverse 意思是 ,倒转,反向
*
* 6:将缓冲区中指定的数据储存到指定字符数组中
*                 void getCharset(int srcBegin, int srcEnd, char[] dst, int dstBegin);
*
*
* StringBuffer 和 StringBuilder的区别
*
* 1.JDK1.0 版本出现的StringBuffer
* 2.JDK1.5 版本出现的StringBuilder
*
* StringBuffer是线程同步      (安全性高,速度慢)
* StringBuilder是线程不同步的    (安全性低,速度快)
*
* 以后开发,建议使用StringBuilder
*
* JDK以及里面的包
* 升级的三个因素
* 1,提高效率.
* 2,简化书写.
* 3,提高安全性.
*
* */
public class String类里buidler和buffer {
       
        public static void main(String[] args) {
                demo1();
                System.out.println("==以上把字符串大小写和符号分别找出来===");
                Demo2();
                System.out.println("==以上是找带数组对应的角标值==");
                Demo3();
                System.out.println("==将字符串转成AIIKS码==");
        }

        public static void Demo3() {
                String s1 = "adasdsada";
                int ch =s1.charAt(3);
                System.out.println(ch);
        }
        //String 类的数组角标查找法
        public static void Demo2() {
                String s1 = "abcdefghijklmnopqrstuvwxyz";
                int index1 = s1.indexOf('l');
                int index2 = s1.indexOf('b');
                System.out.print(index1+"   ");
                System.out.print(index2+"   ");
               
                String s2 ="大家好才是真的好";
                int index3 = s2.indexOf('是');
                System.out.println(index3);
        }

        //将指定的字符串大小写和符号分别找出来
        public static void demo1() {
                String str = "ABCDEabcde123456@#$%^&";
                int big = 0;  //大写
                int small = 0; //小写
                int num = 0;        //数字
                int other = 0;        //其他的
               
                char[] arr = str.toCharArray();                        //将字符串转换成字符数组
               
                for (int i = 0; i<arr.length ; i++) {        //遍历字符数组
                        char ch = arr[i];                                        //定义临时变量记录每个字符
                        if(ch >= 'A' && ch <= 'Z') {                //当字符在A到Z字符之间下面的就加一
                                big++;
                        }else if (ch >='a' && ch <= 'z') {        //当字符在a到z之间下面的就加一
                                small++;
                        }else if(ch >= '0' && ch <= '9') {        //当字符在0字符到9字符之间下面的就加一
                                num++;
                        }else {
                                other++;                                                //把剩下的找完就是其他字符
                        }
                }
                System.out.println("大写字母="+ big + "小写字母="+small+"数字就=" +num+"符号就="+other);
        }
}


看这毕老师的视频写出来的!建议你多看毕老师的视频

评分

参与人数 1技术分 +1 收起 理由
梦里花-静 + 1 回答得很详细,多看视频啊!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马