zoukankan      html  css  js  c++  java
  • StringBuffer

    1.StringBuffer类的概述

      1.String 和 StringBuffer 的区别

        String 是一个不可变字符序列

        StringBuffer 是一个可变的字符序列

    2.StringBuffer 类的构造方法

       1.StringBuffer 的构造方法

         public StringBuffer();无参构造方法

         public StringBuffer(int capacity);指定容量的字符串缓冲区对象

         public StringBuffer (String str);指定字符串内容的字符串缓冲区对象

       2.StringBuffer 的方法

         public int capacity ();返回当前容量

         public int length();返回长度,也就是元素数量

     1   public static void main(String[] args) {
     2         StringBuffer s = new StringBuffer();
     3         //s.length()代表字符串缓冲区容器中的字符个数,实际值
     4         System.out.println(s.length());
     5         //容器的初始容量,理论值
     6         System.out.println(s.capacity());
     7         // 字符串缓冲区的容量也可以自己指定大小
     8         StringBuffer s2 = new StringBuffer(10);
     9         System.out.println(s2.length());//容器中的字符个数,实际值
    10         System.out.println(s2.capacity());//容器的初始容量,理论值
    11 
    12         StringBuffer s3 = new StringBuffer();
    13         for(int i=0;i<20;i++){
    14             s3.append(i);
    15         }
    16         System.out.println(s3.length());//容器中的字符个数,实际值
    17         System.out.println(s3.capacity());//容器的初始容量,理论值
    18     }


       

     2.StringBuffer 的添加功能

      1.StringBuffer的添加功能 

        添加后,内容还是StringBuffer本身,也就是一个类

        public StringBuffer append(String str);可以把任意类型数据添加到字符串缓冲区里,并返回字符串缓冲区本身

        public StringBuffer insert(int offset,String str);在指定位置把任意类型的数据插入到字符串缓冲去里面,并返回字符串缓冲区本身  

      2.StringBuffer的删除功能

        public StringBuffer deleteCharAt(int index);删除指定位置的字符串,并返回本身 

        public StringBuffer delete(int start,int end);删除指定位开始指定位置结束的内容,并返回本身

     1  /*
     2      * A:StringBuffer的删除功能
     3      * public StringBuffer deleteCharAt(int index):
     4      * 删除指定位置的字符,并返回本身
     5      * public StringBuffer delete(int start,int end):
     6      * 删除从指定位置开始指定位置结束的内容,并返回本身
     7      */
     8     public static void main(String[] args) {
     9         StringBuffer s = new StringBuffer();
    10         //当缓冲区中这个索引上没有元素的时候就会报StringIndexOutOfBoundsException
    11         s.append("实战Hadoop2.0从云计算到大数据");
    12         s.deleteCharAt(0);////根据索引删除掉索引位置上对应的字符
    13         System.out.println(s);
    14         s.delete(0, 3);//包含头,不包含尾
    15         System.out.println(s);
    16     }

    3.StringBuffer 的替换和反转功能

      StringBuffer 的替换功能

        public StringBuffer replace(int start,int end,String str)从 start 开始,到 end 范围内的字符串用 str 替换

      StringBuffer 的反转功能

        public StringBuffer reverse();将字符串反转

    1 StringBuffer sb = new StringBuffer("jinghang");
    2         sb.replace(0, 4, "hang");
    3         System.out.println(sb);    //输出结果为  hanghang
    4         
    5         sb.reverse();
    6         System.out.println(sb); //输出结果为  gnahgnah

    4.StringBuffer 的截取功能及注意事项 

      StringBuffer的截取功能

        public String subString(int start);从指定位置截取到末尾

        public String subString (int start ,int end);截取从指定位置开始到位置开始到结束位置,包括开始位置,不包括结束位置

      截取后返回值不再是 StringBuffer 本身,

        

    1     StringBuffer sb = new StringBuffer("nihao");
    2         /*sb.substring(2);
    3          * System.out.println(sb);//nihao注意:返回值类型不再是StringBuffer本身
    4 */        
    5         String str1 = sb.substring(2);
    6         System.out.println(str1);
    7         String str2 = sb.substring(2, 5);//截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
    8         System.out.println(str2);

    5.String 和 StringBuffer 相互转换

      String —— StringBuffer

        通过构造方法

        通过 addend()方法

      StringBuffer —— String

        通过构造方法

        通过 toString()方法

        通过subString(0,length);

     StringBuffer 转换String

             * a:通过构造方法
             * b:通过toString()方法
             * c:通过subString(0,length);
             */
            StringBuffer s = new StringBuffer("jinghang");
            String s1 = new String(s);//通过构造将StringBuffer转换为String
            System.out.println(s1);
    
            String s2 = s.toString();//通过toString方法将StringBuffer转换为String
            System.out.println(s2);
    
            //通过截取子字符串将StringBuffer转换为String
            String s3 = s.substring(0, s.length()-1);
            System.out.println(s3);
        }    

    String转化为StringBuffer

    1   //通过构造方法将字符串转换为StringBuffer对象
    2                 StringBuffer s1 = new StringBuffer("jinghang");
    3                 System.out.println(s1);
    4                 System.out.println("++++++++++++++++++");
    5                 //通过append方法将字符串转换为StringBuffer对象
    6                 StringBuffer s2 = new StringBuffer();
    7                 s2.append("jinghang");
    8                 System.out.println(s2);

     6.区别

     StringBuffer 和 StringBuilder 的区别

      StringBuffer 是jdk 1.0 版本的,是线程安全,效率低

      StringBuilder 是jdk1.5版本的,线程不安全,但效率高

    String 和 StringBuffer ,StringBuilder 的区别 

      String是一个不可变字符序列

      StringBuffer StringBuilder是可变的字符序列

    7.String 和 StringBuffer 分别作为参数传递

       基本数据类型的值传递,不改变其值  

      引用数据类型的值传递,改变其值

      String类虽然是引用数据类型,但是他当做参数传递时和基本数据类型是一样的

         如果你想修改字符串的的值,应该用stringBuffer

     1   public static void main(String[] args) {
     2 
     3         String s = "21班你们";
     4         change(s);
     5         System.out.println(s);    //输出结果为   21班你们
     6 
     7         System.out.println("++++++++++++++++++++");
     8 
     9         StringBuffer sb = new StringBuffer("21班你们");
    10         change(sb);
    11         System.out.println(sb);    //输出结果为    21班你们nihao
    12     }
    13 
    14     public static void change(String s) {
    15         s += "nihao";  
    16     }
    17     public static void change(StringBuffer sb) {
    18         sb.append("nihao");
    19     }

      

  • 相关阅读:
    vs.net2003里添加邮件发件人身份验证
    Linux下用PYTHON查找同名进程
    修改机器名后要修改IIS匿名访问用户
    [C#]使用MYSQL数据库
    JIRA OutOfMemoryErrors
    获取linux下当机堆栈
    python调用pipe
    [探讨]一次性工具软件
    GGSN
    三层交换机的作用
  • 原文地址:https://www.cnblogs.com/xsh726/p/11373772.html
Copyright © 2011-2022 走看看