java之StringBuffer

/**
 * 1、java.lang.StringBuffer 代表可变的字符序列,可以对字符串内容进行增删
 * 2、很多方法与String相同,StringBuffer是可变长度的
 * 3、StringBuffer是一个容器
 */

1、介绍

public class MyStringBuffer {
    public static void main(String[] args) {

        // 1. 直接父类是 AbstractStringBuilder
        // 2. 实现了Serializable,即可串行化
        // 3. 在父类中,有属性 char[] value, 该数组存放字符串内容,不是final类型,存放在堆中;
        // 4. StringBuffer是final类,不能被继承
        // 5. StringBuffe字符串内容是存在 char[] value,所有的变化(增加/删除)[达到一定限制后扩容]
        //    不用每次都更新地址(即不是每次都创建新对象),所以效率高于String
        StringBuffer stringBuffer = new StringBuffer();

        /* StringBuffer的构造器 */
        // 1.创建一个大小为 16 的char[] 用于存放字符内容
        StringBuffer stringBuffer02 = new StringBuffer();
        // 2.通过构造器指定 char[] 大小
        StringBuffer stringBuffer03 = new StringBuffer(1000);
        // 3.通过 给一个String 创建StringBuffer:char[]大小是--str.length+16
        StringBuffer stringBuffer04 = new StringBuffer("hello");

        /* StringBuffer 和 String 的相互转换 */
        /* String --> StringBuffer */
        String str = new String("hello tom");
        // 方式1. 使用构造器,返回一个StringBuffer对象,对原str无影响
        StringBuffer stringBuffer1 = new StringBuffer(str);
        // 方式2. 使用 append 方法
        StringBuffer stringBuffer2 = new StringBuffer();    // 先构建一个空对象
        stringBuffer2 = stringBuffer2.append(str);

        /* StringBuffer --> String */
        // 方式1. 使用StringBuffer的 toString 方法
        StringBuffer test = new StringBuffer("Test");
        String s = test.toString();
        // 方式2. 使用String的构造器
        String s1 = new String(test);

    }
}

2、常用方法

/**
 * String常用方法
 */
public class CommMethod {
    public static void main(String[] args) {
        // 1. equals & equalsIgnoreCase  毕竟字符串,是否区分大小写

        // 2. length    字符串长度

        // 3. indexOf & lastIndexOf  返回索引对应的字符/字符串在本字符串中的索引

        // 4. subString  截取字符串指定范围的字符
            //String.subString(5);    // 截取索引5以后所有的字符
            //String.subString(1,5);  // 截取字串索引范围[1, 5)

        // 5. toUpperCase &  toLowerCase

        // 6. concat   拼接字符串
        String hello = new String("hello, world");
        System.out.println(hello.concat(",").concat("world"));

        // 7. str.replace("src","dest")  在str中,用dest替换所有src
        //    replace返回替换后的字符串,不影响原字符串
        System.out.println(hello.replace('l','P'));
        System.out.println(hello.replace("he","we"));

        // 8. split(",")    用指定的字符串分割原字符串,返回分割后的字符串数组 String[]
        System.out.println(hello.split(","));
        //    分割时若有特殊字符 需要转义
        String path = "E:\\aa\\bb";
        String[] split_path = path.split("\\\\");   // 使用\\进行分割原字符串
        System.out.println(split_path[0]+" "+split_path[1]);

        // 9. toCharArray   将原字符串转换成 字符数组,返回字符数组 char[]
        char[] chars = hello.toCharArray();
        System.out.println(chars[0]);

        // 10. compareTo 用于比较两个字符串的大小
        //     前者大,返回正数:后者大,返回负数;相等,返回0
        System.out.println(hello.compareTo("hemlo"));   // 实际上返回 l-m 的值
        System.out.println("Hell".compareTo("Hello"));  // 实际上返回 length(Hell)-length(Hello)=-1
        System.out.println("Hellom".compareTo("Hello"));  // 实际上返回 length(Hellom)-length(Hello)=1

        // 11. format 格式化字符串
        /* 占位符有:%s 字符串;%c 字符;%d 整型;%.2f 浮点型 */
        // %.2f 替换后保留小数点后两位,且会四舍五入
        String name = "test";
        int age=10;
        double score = 99.56789;
        char gender = '女';

        String formatStr = "姓名是%s, 年龄%d, 性别是%c, 成绩是%.2f";
        System.out.println(String.format(formatStr,name,age,gender,score));

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值