• java常用类及其方法使用StringBuffer


    基本介绍

    1、StringBuffer类是对String类的增强,其代表了可变字符序列,可以对字符串的内容进行增删。

    2、很多方法和String是相同的,但是StringBuffer是可变长度的。

    3、StringBuffer是一个容器。

    4、类结构图

     

    1)StringBuffer的直接父类,是AbstractStringBuffer;

    2)StringBuffer实现了Serializable,即可序列化;

    3)在父类中,AbstractStringBuilder有属性char[ ] value,不是final类型。,该value字符串存放字符串内容,因此存放在堆中,

    4)StringBuffer是一个final类,不能被继承。

    5)因为StringBuffer内容存储在char value[]中,所以每次的增加删除都是在堆中进行修改,不用每次创建地址,不是每次都创建新的对象。

    String和StringBuffer的对比:

    1、String保存的是字符串常量,里面的值不能修改,每次String的修改都是对地址的修改,效率较低。保存在private final char value[];

    2、StringBuffer保存的是字符串变量,里面的值可以被修改,每次StringBuffer的更新实际上就是内容的更新,不用每次都修改地址。StringBuffer里的char[] value的字符数组存放在堆里。

    StringBuffer构造器

     

    String和StringBuffer相互转换

     

    StringBuffer常用方法:

     注意:append参数也可以是字符串

    1. public class Study {
    2. public String toString() {//重写Object类中toString()方法
    3. return getClass().getName();
    4. }
    5. public static void main(String[] args) {
    6. StringBuffer s1=new StringBuffer("abcd1234!?,;");
    7. StringBuffer s2=new StringBuffer("987654321987654");
    8. StringBuffer s3=new StringBuffer("987654321");
    9. System.out.println("↓↓↓StringBuffer类的一些常用方法如下↓↓↓");
    10. System.out.println("-----------------------------------------------------");
    11. System.out.println("字符串s1的长度为:" + s1.length());//返回字符串的实际长度
    12. System.out.println("-----------------------------------------------------");
    13. System.out.println("字符串s1所占容器的大小为:" + s1.capacity());//返回字符串所占容器的总大小
    14. System.out.println("-----------------------------------------------------");
    15. System.out.println("获取字符串s1中第2个位置的字符:" + s1.charAt(2));
    16. System.out.println("-----------------------------------------------------");
    17. System.out.println("子字符串'654'第一次出现在字符串s2中的索引为:" + s2.indexOf("654"));
    18. System.out.println("从指定的索引6开始搜索,返回子字符串'654'第一次出现在字符串s2中的索引:" + s2.indexOf("654",6));
    19. System.out.println("-----------------------------------------------------");
    20. System.out.println("子字符串'987'最后一次出现在字符串s2中的索引为:" + s2.lastIndexOf("987"));
    21. System.out.println("从指定的索引5开始反向搜索,返回字符串'87'在字符串s2中最后一次出现的索引:" + s2.lastIndexOf("87",5));
    22. System.out.println("-----------------------------------------------------");
    23. s1.append('x');//在字符串s1的末尾添加字符'c'
    24. s1.append("Java");//在字符串s1的末尾添加字符串"Java"
    25. System.out.println("修改后的字符串s1为:" + s1);
    26. System.out.println("-----------------------------------------------------");
    27. s1.insert(4,"abcd");//在第4个位置插入字符串"abcd"
    28. System.out.println("修改后的字符串s1为:" + s1);
    29. System.out.println("-----------------------------------------------------");
    30. s1.deleteCharAt(1);//删除字符串s1中第一个位置的字符
    31. s1.delete(2,5);//删除字符串s1中第2到第4个位置的字符
    32. System.out.println("修改后的字符串s1为:" + s1);
    33. System.out.println("-----------------------------------------------------");
    34. s1.replace(4,8,"5678");//将字符串s1中第4到第7个位置的字符串修改为"5678"
    35. System.out.println("修改后的字符串s1为:" + s1);
    36. System.out.println("-----------------------------------------------------");
    37. s1.setCharAt(1,'b');//将字符串s1中第一个位置的字符修改为'b'
    38. System.out.println("修改后的字符串s1为:" + s1);
    39. System.out.println("-----------------------------------------------------");
    40. s2.reverse();//将字符串s2反转
    41. System.out.println("修改后的字符串s2为:" + s2);
    42. System.out.println("-----------------------------------------------------");
    43. System.out.println("截取字符串s1从第4个位置开始到结尾:" + s1.substring(4));
    44. System.out.println("-----------------------------------------------------");
    45. System.out.println("截取字符串s1从第4个位置开始到第7个位置结尾:" + s1.substring(4,8));
    46. System.out.println("-----------------------------------------------------");
    47. System.out.println("获取s1的变量类型:" + s1.getClass().getName());
    48. System.out.println("将对象信息转化为字符串:" + s2.toString());
    49. }
    50. }

  • 相关阅读:
    QEMU TCG研究
    Autosar代码阅读和调试方法
    利用注解和反射,在Java后端开发里偷一个不该偷的懒
    徐建鸿:深耕中医康养的“托钵行者”
    SpringBoot2基础篇(一)—— 入门案例
    【编程题】【Scratch一级】2021.06 奔跑的马
    Solidity入门1: 3. 函数类型
    计算机毕业设计之java+ssm基于web的实验室课程管理系统
    苹果图片heic格式怎么转化成jpg?两种方法解决它
    uniapp 手机端实现pdf文件下载和预览
  • 原文地址:https://blog.csdn.net/weixin_42383952/article/details/126591471