package com.itheima.example;
/*StringBuffer
* 字符串的组成原理就是通过该类实现的
* StringBuffer可以对字符串内容进行增减
* StringBuffer是一个容器
* 很多方法和String相同
* StringBuffer是可变长度的
*
* StringBuffer是字符串缓冲区。
*
* 就是一个容器
* 1.长度是可变化的
* 2.可以添加任意类型,多个数据类型都可以
* 3.最终会通过toString方法变成字符串
*
* C create
* U update
* R read
* D delete
* 容器特点:就是对数据的改变
* 1.存储
* StringBuffere append();
* 将指定的数据做完参数添加到已有数据的结尾处。
* StringBuffere insert(index,数据);
* 可以将数据插入到指导index当中
*
* 2.删除
* StringBuffer delete(start end)删除缓冲区当中的数据
* 包含start 不包含end
* StringBuffer deleteCharAt(index)删除指定位置的数据
*
* 3.获取
* char charAt(int index)
* indexOf(String str)
* int lastIndexOf(String str)
* int length()
* String substring(int start,int end)
*
* 4.修改
* stringBuffer.replace(start,end,string);
*
* void stringBuffer.setCharAt(int index,char ch);
*
* 5.反转
* StringBuffer reverse();
*
* 6.将缓冲区中指定的数据存储到指定的字符数组当中
* void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)
*
* 特别:
* 在jdk1.5之后,出现了StringBuilder
* StringBuffer是线程同步(安全的,但是效率比较低)
* StringBulider是线程不同步(不安全的,效率比较高,用于多线程)
* 开发建议使用StingBulider
*
*
* java升级:
* 1.提高效率
* 2.简化书写
* 3.提高安全性能
* */
public class Note2
{
public static void main(String[] argsStrings)
{
StringBuffer stringBuffer=new StringBuffer();
// StringBuffer stringBuffer2=stringBuffer.append(111);
// System.out.println(stringBuffer.toString());
// System.out.println(stringBuffer2.toString());
// System.out.println(stringBuffer=stringBuffer2);
stringBuffer.append("abc").append(true).append(111);
stringBuffer.insert(1, "yy");//
System.out.println(stringBuffer.toString());
stringBuffer.delete(2, 3);
System.out.println(stringBuffer.toString());
stringBuffer.replace(1, 2, "ew");
System.out.println(stringBuffer.toString());
stringBuffer.setCharAt(2, ‘a‘);
System.out.println(stringBuffer.toString());
stringBuffer.deleteCharAt(4);
char[] chs=new char[4];
stringBuffer.getChars(1, 4, chs, 1);
for (int x = 0; x < chs.length; x++)
{
System.out.println("chs"+x+chs[x]+")");
}
//清空缓冲区
stringBuffer.delete(0, stringBuffer.length());
System.out.println("清空之后"+stringBuffer.toString());//abctrue1111
StringBuilder stringBuffer1=new StringBuilder();
//StringBuffer stringBuffer2=stringBuffer.append(111);
//System.out.println(stringBuffer.toString());
//System.out.println(stringBuffer2.toString());
//System.out.println(stringBuffer=stringBuffer2);
stringBuffer1.append("abc").append(true).append(111);
stringBuffer1.insert(1, "yy");//
System.out.println(stringBuffer1.toString());
stringBuffer1.delete(2, 3);
System.out.println(stringBuffer1.toString());
stringBuffer1.replace(1, 2, "ew");
System.out.println(stringBuffer1.toString());
stringBuffer1.setCharAt(2, ‘a‘);
System.out.println(stringBuffer1.toString());
stringBuffer1.deleteCharAt(4);
char[] chs1=new char[4];
stringBuffer1.getChars(1, 4, chs1, 1);
for (int x = 0; x < chs1.length; x++)
{
System.out.println("chs"+x+chs1[x]+")");
}
//清空缓冲区
stringBuffer1.delete(0, stringBuffer1.length());
System.out.println("清空之后"+stringBuffer1.toString());//abctrue1111
}
}