黑马 StringBuffer

/*
	StringBuffer 是字符串缓冲区

	是一个容器
	特点:
	1,长度是可以变化的
	2,可以直接操作多种数据类型
	3,最终会通过toString方法变成字符串

	C creat U updata r read D delete

	1,存储
		StringBuffer append():将指定数据作为参数添加到已有数据结尾处
		StringBuffer insert(offset ,数据);可以将数据插入到指定位置

	2,删除
		StringBuffer delete(start ,end );删除缓冲区中的数据,包含start,不包含end
		StringBuffer deleteCharAt(index),删除指定位置的字符

	3,获取
	char charAt(int index);
	int indexOf(String str);
	int lastIndexOf(String str);
	int length();
	String substring(int start,int end);


	4,修改(替换)
	StringBuffer replace(start,end,str);
	void setCharAt(int offSet,char ch);

	5,翻转
	StringBuffer reverse();

	6,
	将缓冲区中指定数据存储到指定字符数组中
	void getChars(int srcBegin,int srcEnd,char []dst,int dstBegin)



JDK1.5 版本之后出现了StringBuilder

StringBuffer 是线程同步
StringBuilder 是线程不同步


以后开发,建议使用StringBuffer
使用方法和StringBuffer 一样

升级三个因素
1,提高效率
2,简化书写
3,提高安全性

*/

class StringBufferDemo
{
	public static void main(String []args)
	{
		//method_add();
		//method_del();
		//method_update();
		StringBuffer sb = new StringBuffer("abcdef");

		char [] chs = new char[4];

		sb.getChars(1,4,chs,1);

		for(int x = 0 ; x<chs.length; x++)
		{
			sop("chs["+x+"]"+ chs[x]+ " ");
		}



	}

	public static void method_update()
	{
		StringBuffer sb = new StringBuffer("abcdef");
		//StringBuilder sb = new StringBuilder("abcdef");
		
		sb.replace(1,4,"java");
		sb.setCharAt(2,'K');
		sop(sb);
	}

	public static void method_del()
	{
		StringBuffer sb = new StringBuffer("abcdef");

		sb.delete(1,4);
		//清空内存缓冲区
		//sb = new StringBuffer();也可以清空 不过浪费了空间
		//sb.delete(0,sb.length());
		sb.deleteCharAt(2);
		sop(sb.toString());
	}
	
	public static void method_add()
	{
		StringBuffer sb1 = new StringBuffer();
		sb1.append("abc").append(true).append(90);
		sop(sb1);
		sb1.insert(1,"qq");
		sop(sb1.toString());
	}

	public static void sop(Object obj)
	{
		System.out.println(obj);
	} 
}

原文地址:https://www.cnblogs.com/dengshiwei/p/4258529.html