Java(13)StringBuffer 和 StringBuilder

一、StringBuffer字符串缓冲区

1、特点

  •      长度可变
  •      可以直接操作多个数据类型
  •      最终会通过toString()方法变成字符串

2、常用方法

存储:

  • 追加到已有数据的末尾:StringBuffer append(String str);
  • 在指定的位置添加数据:StringBuffer insert(int offset,String str)

删除:

  • 删除指定区间的数据 包头不包尾:StringBuffer delete(int start,int end)
  • 删除指定位置的字符:StringBuffer deleteCharAt(int index)

获取:

  • 取某个位置上的字符:char charAt(int index)
  • 获取指定字符串第一次出现的位置:int indexOf(String str)
  • 获取指定字符串最后一次出现的位置:int lastIndexOf(String Str)
  • 获取长度:int length()
  • 截取:String substring(int start)

修改:

  • 将指定区间的字符串 修改为 传入的新的字符串 包头不包尾:StringBuffer replace(int start,int end,String str)
  • 替换指定位置的字符:void setCharAt(int index,char ch)

反转:

  • 字符串的反转:StringBuffer reverse() 

二、String 和StringBuffer的区别

1、转换

String---->StringBuffer

StringBuffer----->String

  • 通过append(String str)方法
  • 通过构造方法   String(StringBuffer buffer)
  •  截取:String substring(int start)

2、相同点:都是操作字符串的

3、不同点:

  • StringBufer效率  大于 String;StringBuffer是在原有的基础上追加;String每一次拼接都会创建一个新的字符串
  • String类虽然是引用数据类型 但在它作为方法的参数传递的时候 传递的和基本数据类型/包装类一样传的是值,而StringBuffer传的是地址

三、StringBuilder类

      StringBuilder和StringBuffer一样,StringBuffer怎么用,StringBuilder就怎么用

不同点:

  • StringBuffer是JDK1.0版本出现的、线程同步、 线程安全 、效率低
  • StringBuilder是JDK1.5版本出现的、线程不同步、 线程不安全、效率高

四、比较

按效率排:StringBuilder>StringBuffer>String

猜你喜欢

转载自blog.csdn.net/weixin_42496678/article/details/81408351
今日推荐