黑马程序员—Java API(字符串缓冲区StringBuffer、StringBuilder)

------- android培训java培训、期待与您交流! ----------

 

 

 

StringBuffer是字符串缓冲区,是一个容器。

 

特点:

1:可以对字符串内容进行修改

2:是一个容器。

3:是可变长度的。

4:缓冲区中可以存储任意类型的数据。

5:最终需要变成字符串。

 

而容器通常具备一些固定的方法:

1.增                      2.删                    3.改                       4.查

create                   delete                  update                 read

简称:CURD

 

StringBuffer字符串缓冲区一些常见的方法:

1.存储:
 *   StringBuffer append(data); 将指定的数据作为参数添加到已有数据的结尾处。返回值为StringBuffer类型。
 *   StringBuffer insert(offset, 任意类型数据); 可以将指定数据插入到offset角标前面。返回值为StringBuffer类型。
 * 
 *  2.删除:
 *   StringBuffer delete(int start, int end);删除缓冲区中的数据,包含start,不包含end。
 *   StringBuffer deleteCharAt(int index); 删除指定位置的字符。
 * 
 *  3.获取:
 *   char charAt(int index) //获取指定位置index的字符。
 *   int indexOf(String str)  //获取指定字符串的索引。
 *   int lastIndexOf(String str)  //反向获取指定字符串的索引
 *    int length()    //获取字符串长度
 *     String substring(int start) //截取字符串,从start位置开始。
 * 
 *  4.修改。
 *   StringBuffer replace(int start, int end, String str)使用给定 String 中的字符替换此序列的子字符串中的字符。
 *   void setCharAt(int index, char ch) 将给定索引处的字符设置为 ch。 
 *
 *  5.反转。
 *   StringBuffer reverse(); 将此字符序列用其反转形式取代。
 * 
 *  将缓冲区中指定数据存储到指定字符数组中。
 *  6.void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 
 * 
 *  JDK1.5版本之后出现了StringBuilder和StringBuffer功能一模一样。
 *  不同之处在于,StringBuffer是线程同步的。StringBuilder不是线程同步的。
 *  以后开发建议使用StringBuilder。

方法和StringBuffer一样。

StringBuffer StringBuilder 的区别:

StringBuffer线程安全。

StringBuilder线程不安全。

 

单线程操作,使用StringBuilder效率高。

多线程操作,使用StringBuffer安全。

 

 

代码示例:

//字符串缓冲区演示类
public class StringBufferDemo
{
	public static void main(String[] args)
	{
		//调用添加方法
		methodAdd();
		//调用删除方法
		methodDelete();
		//调用修改方法
		methodUpdate();
		
		//创建一个字符串缓冲区对象,初始化缓冲区的内容为 "adbjk"
		StringBuffer s = new StringBuffer("adbjk");
		//创建一个字符数组
		char[] c = new char[19];
		//将字符串缓冲区中从0到s.length()-1的字符,存入字符数组c中,从字符数组的1角标开始
		s.getChars(0, s.length(), c, 1);
		//迭代字符数组c中的每个元素
		for (int x = 0; x < c.length; x++)
			print("c["+x+"]="+c[x]);
	}
	
	//字符串缓冲区的添加方法
	public static void methodAdd()
	{
		//定义一个字符串缓冲区s
		StringBuffer s = new StringBuffer();

		//往字符串缓冲区中添加一系列的元素
		s.append("qawsed").append(true).append(678).insert(3, "kk"); //方法调用链
		//打印字符串缓冲区中的元素
		print(s.toString());
	}
	
	//字符串缓冲区中的删除方法
	public static void methodDelete()
	{
		//创建一个字符串缓冲区s
		StringBuffer s = new StringBuffer("abcdefg");
		//删除指定位置的字符
		s.deleteCharAt(2);
		//清空缓冲区。
		//s.delete(0, s.length());
		print(s.toString());
	} 
	
	//字符串缓冲区的修改方法
	public static void methodUpdate()
	{
		//创建一个字符串
		StringBuffer s = new StringBuffer("abcdefg");
		//将缓冲区中从索引1(包含)开始到索引3(不包含)位置替换成 "java"
		//s.replace(1, 3, "java");
		//将指定索引位置3的字符设置为 'k'
		s.setCharAt(3, 'k');
		//打印缓冲区中的元素
		print(s.toString());
	}
	
	//为了方便打印,定义的打印功能
	public static void print(String str)
	{
		System.out.println(str);
	}
}


 

------- android培训java培训、期待与您交流! ----------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值