JAVA基础----StringBuffer

JAVA基础----StringBuffer,第1张

JAVA基础----StringBuffer

StringBuffer
    1、StringBuffer的特点:
      (1)线程安全的
            不安全就是存在同步 *** 作统一数据的行为,效率高;
             线程安全的时候就是,没有同步的 *** 作,但是效率较低;
      (2)StringBuffer是一个可变序列
      (3)StringBuffer又称之为字符串缓冲区,就相当于一个字符串,只是与String相比,
           是可以修改内容的;
      (4)在任何时间点,包含着一些特定的字符序列,但是可以通过某些方法修改序列的
           长度和内容
            (简单记忆:StringBuffer是一个线程安全的可变的序列)
        
    2、StringBuffer的添加功能
        public StringBuffer append(String str)
        举例: //创建一个StringBuffer对象
            StringBuffer sb2 = new StringBuffer();
            sb2.append("hello");
            System.out.println(sb2);//结果:hello
            sb2.append("java").append("mysql").append("Hive");
            System.out.println(sb2);//结果:hellojavamysqlHive
         public StringBuffer insert(int index,String str)
            //在索引index处插入str字符串
        举例://创建一个StringBuffer对象
            StringBuffer sb2 = new StringBuffer();
            sb2.append("hello");
            System.out.println(sb2);//结果:hello
            sb2.insert(5,"world");
            System.out.println(sb2);//结果:helloworld
        
    3、StringBuffer的删除功能
        1)public StringBuffer deleteCharAt(int index)
           //删除指定索引处的字符,删除指定索引处的字符,该序列缩短了一个char
           举例://使用带参构造方法创建StringBuffer对象
               StringBuffer sb = new StringBuffer("bigdata");
               System.out.println("未做删除 *** 作之前的StringBuffer:" + sb);//结果:bigdata
               sb.deleteCharAt(6);
               System.out.println("做删除 *** 作之后的StringBuffer:" + sb);//结果:bigdat
            2)public StringBuffer delete(int start,int end)
            //删除从索引start开始到索引处end-1的字符;
            举例:StringBuffer sb = new StringBuffer("bigdata");
                  sb.delete(2,5);//删除索引2到索引(5-1)位置的字符
                  System.out.println(sb);//结果:bita
        
    4、StringBuffer替换功能
        public StringBuffer replace(int start,int end,String str)
        //用指定的String中的字符替换此序列的子字符串中的String
        //子串开始于指定start并延伸到字符索引end - 1 ,或如果没有这样的字符存在的序列的结束。
        //第一子串中的字符被去除,然后指定String被插入在start .
        举例://创建一个StringBuffer对象
              StringBuffer sb = new StringBuffer();
              //王StringBuffer中添加一些内容
              sb.append("java").append("mysql").append("hadoop"));
              System.out.println(sb);//结果:javamysqlhadoop
              //public StringBuffer replace(int start,int end,String str)
              sb.replace(4,5,"我们是最棒的");
              System.out.println(sb);//结果:java我们是最棒的ysqlhadoop
        
    5、StringBuffer的反转功能
        public StringBuffer reverse()
        //导致该字符序列被序列的相反代替。
        //如果序列中包含任何替代对,则将它们视为单个字符进行反向 *** 作
        举例:StringBuffer sb = new StringBuffer();
              sb.append("我爱颖丽赵");
              System.out.println("反转之前:"+sb);
              StringBuffer sb2 = sb.reverse();// *** 作的是同一个StringBuffer对象
              System.out.println("反转之后:"+sb2);
              System.out.println(sb);
                结果:反转之后:赵丽颖爱我
                     赵丽颖爱我
        
    6、StringBuffer的截取功能
        1)public String substring(int start)
            //返回一个新的String ,其中包含此字符序列中当前包含的字符的子序列。
            举例:StringBuffer sb = new StringBuffer();
                sb.append("java").append("mysql").append("hive").append("ETL").append("spark");
                System.out.println(sb);//结果:javamysqlhiveETLspark
                String s1 = sb.substring(4);//截取从第四个字符开始的后的所有字符
                System.out.println(sb);//结果:javamysqlhiveETLspark
                 System.out.println("截取的内容是:"+s1);//结果:mysqlhiveETLspark
        2)public String substring(int start,int end)
            //返回一个新的String ,其中包含此序列中当前包含的字符的子序列。 子串起始于指定的
            //start ,并扩展到索引号为end - 1 。
            举例:StringBuffer sb = new StringBuffer();
                sb.append("java").append("mysql").append("hive").append("ETL").append("spark");
                System.out.println(sb);//结果:javamysqlhiveETLspark
                String s2 = sb.substring(4,9);
                System.out.println("截取的内容是:"+s2);//结果:mysql
                System.out.println("StringBuffer的内容是:"+sb);//结果:javamysqlhiveETLspark

StringBuffer与String之间的转换

public class StringBufferDemo7 {
    public static void main(String[] args) {
        //String -->StringBuffer
        String s = "hello";
       //StringBuffer sb = s;//java: 不兼容的类型: java.lang.String无法转换为java.lang.StringBuffer
        //方式1:通过构造方法转换
        StringBuffer sb1 = new StringBuffer(s);
        System.out.println(s);
        System.out.println(sb1);

        //方式2:通过append()转换
        StringBuffer sb2 = new StringBuffer();
        sb2.append(s);
        System.out.println(s);
        System.out.println(sb2);

        System.out.println("==============================================");
        //StringBuffer -->String
        StringBuffer sb3 = new StringBuffer("bigdata");
        //方式1:toString()方法
        String s1 = sb3.toString();
        System.out.println(sb3);
        System.out.println(s1);

        //方式2:subString
        String s2 = sb3.substring(0);
        System.out.println(s2);
        System.out.println(sb3);

        //方式3:String类的构造方法
        //String(StringBuffer buffer)
        //分配一个新的字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。
        String s3 = new String(sb3);
        System.out.println(sb3);
        System.out.println(s3);
    }
}

    
            
            
            

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5710173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存