【JavaSE】String类(下篇)

hello,进来的小伙伴们,你们好呐!

系列专栏:【JavaSE】

本篇内容:StringBuffer和StringBuider的详解介绍,学会这大类,玩转String——OJ题!

作者简介:一名大二即将升大三的科班编程小白,我很平凡,学会努力!

给大家介绍一款超级好用的网站——牛客网!

点击链接注册,开启刷题之路叭!

 

一、相关用法

String和StringBuilder最大的区别在于String的内容无法修改,而StringBuilder的内容可
以修改。频繁修改字符串的情况考虑使用StringBuilder。

方法1.StringBuff append(Stringstr)

功能:在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、
double、float、int、long、Object、String、StringBuff的变量。

public class Test1 {
    public static void main(String[] args) {
        StringBuilder s1 = new StringBuilder("hello");
        s1.append("java");
        System.out.println(s1);
    }
}

方法2.void setCharAt(int index,char ch)。

功能:将index位置的字符设置为ch。

public class Test1 {
    public static void main(String[] args) {
        StringBuilder s1 = new StringBuilder("hello");
        s1.append("java");
        s1.setCharAt(0,'H');
        System.out.println(s1);
    }
}

 

 方法3.StringBuff insert(intoffset, String str)

功能:在offset位置插入:八种基类类型 & String类型 & Object类型数据。

        StringBuilder s1 = new StringBuilder("hello");
        s1.append("java");
        s1.insert(5,' ');
        System.out.println(s1);

注意:我们这里在hellojava之间插入了一个空格。

方法4:StringBufferdeleteCharAt(int index)

功能:删除index位置字符。

        StringBuilder s1 = new StringBuilder("hello");
        s1.append("java");
        s1.deleteCharAt(0);
        System.out.println(s1);

方法5.StringBuffer delete(intstart, int end)

功能:删除[start, end)区间内的字符。(注意左闭右开)

        StringBuilder s1 = new StringBuilder("hello");
        s1.append("java");
        s1.delete(0,5);
        System.out.println(s1);

 方法6.StringBuffer reverse()

功能:反转字符串。

        StringBuilder s1 = new StringBuilder("hello");
        s1.append("java");
        s1.reverse();
        System.out.println(s1);

注意:String和StringBuilder类不能直接转换。如果要想互相转换,可以采用如下原则:
String变为StringBuilder: 利用StringBuilder的构造方法或append()方法。
StringBuilder变为String: 调用toString()方法。 

二、面试题

1. String、StringBuffer、StringBuilder的区别
String的内容不可修改,StringBuffer与StringBuilder的内容可以修改。
StringBuffer与StringBuilder大部分功能是相似的。
StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作。

  • 33
    点赞
  • 19
    收藏
  • 打赏
    打赏
  • 54
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论 54

打赏作者

IT辰柒_Java

感谢支持!一起做攀登者!

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值