黑马程序员技术交流社区

标题: StringBuffer与StringBuilder [打印本页]

作者: shi0000    时间: 2014-4-16 22:55
标题: StringBuffer与StringBuilder
StringBuffer与StringBuilder有什么不同啊,重点是后者不明白
作者: 张志成    时间: 2014-4-17 01:00
JDK1.5后提供一个StringBuilder类,它的用法与StringBuffer一样;StringBuilder它是线程异步(线程不安全)
StringBuffer它是线程同步(线程安全的)
作者: xtxiaolu    时间: 2014-4-18 09:02
/*
* 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);
        }
}


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




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