串——自定义MyStringBuffer类

本文介绍了如何创建一个自定义的MyStringBuffer类,该类作为缓冲字符串类,允许在字符串操作中改变原始字符串的值。通过使用可变长度的数组存储结构,MyStringBuffer在进行字符串连接等操作时能够动态扩展其空间,从而实现字符串的拼接功能。
摘要由CSDN通过智能技术生成

上一篇自定义了MyString类,在字符串操作时不会改变原串的值。本文的MyStringBuffer类作为缓冲串类,在字符串操作时可以改变原串的值,所以必须采用可变长的数组存储结构,比如在字符串连接时数组要先加长自己的空间再将字符串拼接到一起。

MyStringBuffer类设计如下:(只写了部分方法)

package String;
/**
* @author sun
* 创建时间:2017年4月5日下午4:09:21
*/
/*MyStringBuffer类称为缓冲串类
 * 采用可变长数组存储结构
 * */
public class MyStringBuffer {
	private char[] value;
	private int count;
	
	private void expandCapacity(int newCapacity){//重新申请内存空间
		char[] newValue = new char[newCapacity];//申请内存空间
		arrayCopy(value,0,newValue,0,count);//复制原字符数组
		value = newValue;//让value指向新创建的数组
	}
	
	static void arrayCopy(char[] src,int srcPos,char[] dst,int dstPos,int length){
	//字符数组复制,src为源串的字符数组,srcPos为源串的起始下标
	//dst为目标串的字符数组,dstPos为目标串的起始下标,length为新串的长度
		if(src.length-srcPos<length || dst.length-dstPos<length)
			throw new StringIndexOutOfBoundsException(length);
		for(int i=0;i<le
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值