String和StringBuffer他们都可以存储和操作字符串,即包含多个字符的字符串数据。
String类是字符串常量,是不可更改的常量。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。
StringBuffer可以对字符串内容进行修改。
StringBuffer是字符串缓冲区
StringBuffer是一个容器。特点:1,而且长度是可变化的。2,可以字节操作多个数据类型3,最终会通过toString方法编程字符串
1,存储 StringBuffer append():将制定数据作为参数添加到已有数据结尾处StringBuffer insert(index,数据):可以将数据插入到制定index位置
2,删除StringBuffer delete(start,end):删除缓冲区的数据,包含start,不包含end。StringBuffer
3,获取char charAt(int index)int indexOf(String str)int lastIndexOf(String str)int length()String subString(int start,int end)
4,修改StringBuffer repalce(start,end,string)void setCharAt(int index,char ch)
5,反转StringBuffer reverse();
6,将缓冲区中指定的数据存储到指定字符数组中。void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)
class StringBufferDemo
{
//添加
public static void method_add()
{
StringBuffer sb = new StringBuffer();
sb.append("abc").append("true").append("34");
sb.insert(1,"qq");
sop(sb.toString());
}
//删除
public static void method_del()
{
StringBuffer sb = new StringBuffer("abcdefghi");
sb.delete(2,3);//包含start不包含end
sb.deleteCharAt(0);
sop(sb.toString());
}
//获取
public static void method_get()
{
StringBuffer sb = new StringBuffer("abcdefjhijklm");
sop(String.valueOf(sb.indexOf("m",1)));
//sop(sb.toString().indexOf('b'));
//sop(sb.toString().lastIndexOf("b"));
//sop(sb.toString().length());
//sop(sb.toString().substring(0,4));
}
//替换
public static void method_update()
{
StringBuffer sb = new StringBuffer("abcdefjhijklm");
//sb.replace(0,3,"java");
sb.setCharAt(2,'k');
sb.reverse(); //反转
sop(sb.toString());
}
public static void main(String[] args)
{
//method_add();
//method_del();
method_get();
// method_update();
StringBuffer sb = new StringBuffer("abcdefjhijklm");
char[] chs = new char[4];
sb.getChars(1,4,chs,0); //包含头不包含尾
for(int x=0; x<chs.length;x++)
{
sop("chs["+x+"]="+chs[x]);
}
}
public static void sop(String str)
{
System.out.println(str);
}
}