zoukankan      html  css  js  c++  java
  • StringBuffer

    StringBuffer字符串缓冲区

    它是是一个容器,
    用于对数据的改变,包括存储、删除、获取、修改

    特点:
    1、长度是可以变的
    2、可以直接操作多个数据类型
    3、最终可以通过toString()方法变成字符串


    什么时候用StringBuffer
    数据类型及个数不确定,而且最终要变成字符串时



    1、存储
    StringBuffer append():数据添加到结尾
    StringBuffer insert(index,数据):数据添加至index位置

    2、删除
    StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end
    StringBuffer deleteCharAt(int):删除缓冲区中指定位置的字符

    3、获取
    char charAt(int index)
    int indexOf(String str)
    int lastIndexOf(String str)
    int length()
    String substring(int start, int end) //返回的是String


    4、修改
    StringBuffer replace(int start, int end, String str) :指定起始位置,替换成指定内容,含头不含尾
    void setCharAt(int index, char ch) //替换某一位置的字符

    5、反转
    StringBuffer reverse()

    6、将StringBuffer中指定的数据存储到字符数组中
    void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

      

    StringBuffer只是一个容器,任何数据的增删改查,都是基于容器。

    class StringBufferDemo
    {
        public static void main(String[] args)
        {
            StringBuffer sb=new StringBuffer();  //创建一个空的StringBuffer
            StringBuffer sb1=sb.append(111);
            
            System.out.println("sb==sb1:"+(sb==sb1));  //true。sb和sb1是同一对象,这就是容器的意义
            System.out.println(sb);            //111
            System.out.println(sb1);        //111
    
        }
    }
    class StringBufferDemo
    {
        public static void main(String[] args)
        {    
            method_add();
            method_del();
            method_update();
            method_rev();
            method_getChars();
        }
    
        public static void method_add()            //StringBuffer存储操作
        {
            StringBuffer sb=new StringBuffer();    //创建一个空的容器
            
            sb.append(34);                        //append,末尾加整数34
            sop(sb.toString());                    //输出:34。 toString(),转成字符串。
    
            sb.append(true).append("====");        //方法调用链
            sop(sb.toString());                    //输出:34true====
    
            sb.insert(2,"***");                    //insert,第2角标位处,加***
            sop(sb.toString());                    //输出:34***true====
        }
    
    
    
        public static void method_del()            //StringBuffer删除操作
        {
            StringBuffer sb=new StringBuffer("abcde");    
    
            sb.delete(1,3);            //删除第1、第2角标的字符
            sop(sb.toString());        //输出:ade
            
            //sb.delete(0,sb.length());        //清空缓冲区
            //sb.delete(1,2);            //删除单个
            sb.deleteCharAt(1);            //删除单个
            sop(sb.toString());        //输出:ae
        }
    
        public static void method_update()        //StringBuffer修改操作
        {
            StringBuffer sb=new StringBuffer("abcde");    
            //sb.replace(1,4,"===");                //输出:a===e。含头不含尾
            sb.setCharAt(1,'G');                    //输出:aGcde。角标1的字符替换成G。
            sop(sb.toString());                
        }
        
        public static void method_rev()            //StringBuffer反转操作
        {
            StringBuffer sb=new StringBuffer("abcde");    
            sb.reverse();                            //输出:edcba
            sop(sb.toString());    
        }
    
        public static void method_getChars()        //StringBuffer getChars操作
        {
            StringBuffer sb=new StringBuffer("abcdefg");
            
            char[]  chs=new char[6];            
    
            sb.getChars(1,4,chs,1);                    //将abcdefg中的下标1、2、3位,放到数组chs中,从下标1开始放
            
            for (int x=0;x<chs.length ;x++ )
            {
                sop("chs["+x+"]="+chs[x]);        
    
            }
            /*
            输出:
            chs[0]=
            chs[1]=b
            chs[2]=c
            chs[3]=d
            chs[4]=
            chs[5]=
            */
        }
    
    
        public static void sop(Object obj)
        {
            System.out.println(obj);
        }
    }
  • 相关阅读:
    Python语言解析xml文件
    运行manage.py db shell出错
    ImportError: No module named win32com.client
    ImportError: No module named urllib2
    《演讲之禅》 读书笔记
    no such table: django_admin_log
    2 策略模式(2)
    1 简单工厂模式
    2 策略模式(1)
    无言
  • 原文地址:https://www.cnblogs.com/ibelieve618/p/6563693.html
Copyright © 2011-2022 走看看