java基础--StringBuffer类常用方法以及案例

来源:互联网 发布:能看杂志的软件 编辑:程序博客网 时间:2024/06/06 04:50

StringBuffer类概述

我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题
线程安全的可变字符序列

StringBuffer和String的区别?

简单地说,就是一个变量和常量的关系
StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。

StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。
String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个Java字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可改变的字符串具有一个很大的优点:编译器可以把字符串设为共享的。
StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。
这样使用StringBuffer类的append方法追加字符 比 String使用 + 操作符添加字符 到 一个已经存在的字符串后面有效率得多。因为使用 + 操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使用StringBuffer类就避免了这个问题。

构造方法

public StringBuffer()
public StringBuffer(int capacity)
public StringBuffer(String str)

添加功能

public StringBuffer append(String str)
public StringBuffer insert(int offset,String str)

删除功能

public StringBuffer deleteCharAt(int index)
public StringBuffer delete(int start,int end)

替换功能

public StringBuffer replace(int start,int end,String str)

反转功能

public StringBuffer reverse()

截取功能

public String substring(int start)
public String substring(int start,int end)
截取功能和前面几个功能的不同
返回值类型是String类型,本身没有发生改变

StringBuffer类练习

1. String和StringBuffer的相互转换

1.1 String –> StringBuffer

  方式1. 通过构造方法

  方式2:通过append方法

1.2 StringBuffer –> String

  方式1:通过构造方法

  方式2:通过toString方法

2.把数组拼接成一个字符串(用for循环)

String: 使用+=进行字符串拼接
StringBuffer:使用append方法进行拼接

3.把字符串反转

String:对其进行逆序遍历
StringBuffer:对其直接调用reverse方法,然后toString进行输出

4.判断一个字符串是否是对称字符串

例如”abc”不是对称字符串,”aba”、”abba”、”aaa”、”mnanm”是对称字符串

String:首尾各设一枚指针,循环次数为s.length/2,然后对其元素进行比较
StringBuffer: reverse().toString().equals(s) 一步搞定!

StringBuffer类面试题

通过查看API了解一下StringBuilder类
String,StringBuffer,StringBuilder的区别
StringBuffer和数组的区别
看程序写结果:
String作为参数传递
StringBuffer作为参数传递

0 0
原创粉丝点击