Java 常用类(一)StringBuffer

前面重点说了String包装类,String是一个不可变的字符串,下面重点讲下可变字符串StringBuffer

一、StringBuffer(重点)

线程安全,可变的字符序列

其操作主要分为增删改查和其他

1.1增
  • 字符串不可变,但放入StringBuffer则可变
  • 增:
    尾部增加append(String),
    头部/中部增加insert(开始位置, String)
public class Demo01 {
    public static void main(String[] args) {
        String str = "asdzxc";
        StringBuffer sb = new StringBuffer(str);

        //尾部增加
        sb.append("你好");
        System.out.println(sb);      //asdzxc你好

        //头部增加
        sb.insert(0,"头部");
        System.out.println(sb);     //头部asdzxc你好

        //中间增加
        sb.insert(4,"中间");
        System.out.println(sb);     //头部as中间dzxc你好
    }
}
结果:
asdzxc你好
头部asdzxc你好
头部as中间dzxc你好
1.2删
  • 删单个:deleteCharAt(index); 删除对应的索引值元素
  • 删多个:delete(start, end) 左闭右开
public class Demo02 {
    public static void main(String[] args) {
        String str = "你好,HelloWorld";
        StringBuffer sb = new StringBuffer(str);

        //删除单个元素
        sb.deleteCharAt(1);     //对应下来是“”"好"
        System.out.println(sb); //你,HelloWorld

        //删除多个元素
        sb.delete(7,sb.length());    //sb的长度
        System.out.println(sb); //你,Hello

    }
}
结果:
你,HelloWorld
你,Hello
1.3改

replace
bs.repalce(strat, end, str),改的范围,左闭右开

public class Demo03 {
    public static void main(String[] args) {
        String str = "asdqweaasdzczaaaAA";
        StringBuffer sb = new StringBuffer(str);

        //replace
        sb.replace(0,5,"你好");
        System.out.println(sb);
    }
}
结果:
你好eaasdzczaaaAA

修改单个元素只需要将start和end写成相同的索引值就好了

1.4 查

indexOf() 第一个出现的元素的索引值
lastIndexOf() 最后一个出现的元素的索引值

public class Demo04 {
    public static void main(String[] args) {
        String str = "你好sdqwezcxz啊";
        StringBuffer sb = new StringBuffer(str);

        //inderOf
        int i = sb.indexOf("s");
        System.out.println(i);

        //lastIndexOf()
        int i1 = sb.lastIndexOf("z");
        System.out.println(i1);
    }
}
结果:
2
10
其他功能
substring切片

substring(start) 开始start对应索引的值到最后
sunstring(start, end)开始start值到end值

public class Demo05 {
    public static void main(String[] args) {
        String str = "asdqweq$csdf";
        StringBuffer sb = new StringBuffer(str);
        
        //substring(start)
        String test = sb.substring(5);
        System.out.println(test);    //eq$csdf

        //substring(start,end)
        String test2 = sb.substring(5, 9);
        System.out.println(test2);   //eq$c
    }
}
结果:
eq$csdf
eq$c
reverse反转

sb.reverse()

public class Demo05 {
    public static void main(String[] args) {
        String str = "asdqweq$csdf";
        StringBuffer sb = new StringBuffer(str);

        //reverse
        System.out.println(sb.reverse());
    }
}
结果:
fdsc$qewqdsa

更多的方法需要读者去查jdk了

一般来说,我们用的更多的是StringBuffer的可变长这一属性,常常用来增加的元素,其他大部分都和String原生类差不多

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值