• stringBuffer & StringBuilder


    String 的字符串缓冲区

      StringBuffer  :  线程安全的

      StringBuilder :  线程不安全的   效率高

    与String  区别:

      String 不可变    StringBuffer 可变

    无参构造 :

      构造一个缓冲区   默认16个字节的容量(capacity)

    有参构造三个:

      StringBuffer(int capacity) 指定容量 不常用
      StringBuffer(String str)  直接接收字符串

      StringBuffer(charsequence chs)     接收一个charsequence接口的子类对象

          charsequence 接口   实现的子类有    String, StringBuffer, StringBuilder

    public static void main(String[] arr) {
            StringBuffer sb1 = new StringBuffer();
            System.out.println(sb1.capacity());  // 16   是默认容量
            System.out.println(sb1.length());   //  0  是字符串长度
            
            StringBuffer sb2 = new StringBuffer(10);
            System.out.println(sb2.length());   // 0  是字符串长度
            System.out.println(sb2.capacity());  // 10  是指定的容量
            
            StringBuffer sb3 = new StringBuffer("heima");
            System.out.println(sb3.length());     //5
            System.out.println(sb3.capacity());   // 21        
        }

    append()   :   添加功能     基本数据类型都能接收,  返回的是缓冲区本身

    insert()   : 插入     insert(index,value)

    deleteCharAt(int index)   :  删除指定位置

    delete(int start,int end)    :   删除一段 (取头不取尾),返回的是缓冲区本省

      delete(0,sb.length)   :  清空缓冲区

    replace(start,end,newstr)        替换功能  替换指定部分

    ####反转 sb.reverse()#####

        public static void main(String[] args) {
            Scanner sc1 = new Scanner(System.in);
            System.out.println("请输入字符串");
            String s1 = sc1.nextLine();
            StringBuffer sb1 = new StringBuffer(s1);
            sb1.reverse();
            System.out.println(sb1);   //   默认调用toString()方法
            }

    subString(start,end) 切割 #### 返回的是一个String ####

    String 和 StringBuffer 的转换: 
      String --> StringBuffer :
        StringBuffer的构造、 append(str)
      StringBuffer --> String:
        toString()、 subString() 、 String的构造

    当做参数传递时, String 看做常量 不改变值
            StringBuffer 是引用数据类型 会改变值

    竹杖芒鞋轻胜马,一蓑烟雨任平生。 回首向来萧瑟处,也无风雨也无晴。
  • 相关阅读:
    10_SpringBoot集成TkMybatis插件
    Mysql-YUM安装
    docker数据拷贝
    jquery实现倒计时功能
    CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作
    vue中开发webSocket
    YARN 与Maprd 配置
    js实现轮播图2
    DOM
    js五星好评
  • 原文地址:https://www.cnblogs.com/yaobiluo/p/11302084.html
Copyright © 2020-2023  润新知