android培训、
java培训、期待与您交流!
StringBuffer是字符串缓冲区
是一个容器。
特点:
1,而且长度可以变化。//数组也是容器,长度不可变。
2,可以直接操作多个数据类型。//数组一次只能操作一种。
3,最终会通过toString方法编程字符串。
C create R read U update D delete
1,存储。
StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
StringBuffer insert(index,数据):可以将数据插入到指定index位置。
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,修改。
void setCharAt(int index, char ch)
StringBuffer replace(int start, int end, String str)
5反转。
StringBuffer reverse()
6
将缓冲区中指定数据存在指定数组中的指定位置。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
JDK1.5版本之后出现了StringBuilder.
StringBuffer是线程同步。多线程用
StringBuilder是线程不同步的。单线程用
以后开发建议使用StringBuilder
升级三个因素:
1,提高效率
2,简化书写。
3,提高安全性。
*/
class StringBufferDemo
{
public static void main(String[] args)
{
//method_add();
//method_delete();
//method_update();
method_getChars();
}
public static void method_getChars()
{
StringBuffer sb = new StringBuffer("abcde");
char[] chs = new char[4];
sb.getChars(1,3,chs,1);
for (int i=0;i<chs.length ;i++ )
{
sop("chs["+i+"]="+chs[i]+";");
}
}
public static void method_update()
{
StringBuffer sb = new StringBuffer("abcde");
//sb.replace(2,3,"a");
//sb.setCharAt(2,'a');
sop(sb.toString());
}
public static void method_delete()
{
StringBuffer sb = new StringBuffer("abcde");
//sb.delete(1,3);
//清除缓冲区
//sb = new StringBuffer();
//sb.delete(0,sb.length());
//sb.delete(2,3);
//sb.deleteCharAt(2);
sop(sb.toString());
}
public static void method_add()
{
StringBuffer sb = new StringBuffer();//面盆理论
sb.append("abc").append(true).append(34).append('x');
sop(sb.toString());
sb.insert(1,"qq");
//StringBuffer sb1 =sb.append(34);
//sop("sb==sb1:"+(sb==sb1));
sop(sb.toString());
//sop(sb1.toString());
}
public static void sop(String s)
{
System.out.println(s);
}
StringBuffer是字符串缓冲区
是一个容器。
特点:
1,而且长度可以变化。//数组也是容器,长度不可变。
2,可以直接操作多个数据类型。//数组一次只能操作一种。
3,最终会通过toString方法编程字符串。
C create R read U update D delete
1,存储。
StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
StringBuffer insert(index,数据):可以将数据插入到指定index位置。
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,修改。
void setCharAt(int index, char ch)
StringBuffer replace(int start, int end, String str)
5反转。
StringBuffer reverse()
6
将缓冲区中指定数据存在指定数组中的指定位置。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
JDK1.5版本之后出现了StringBuilder.
StringBuffer是线程同步。多线程用
StringBuilder是线程不同步的。单线程用
以后开发建议使用StringBuilder
升级三个因素:
1,提高效率
2,简化书写。
3,提高安全性。
*/
class StringBufferDemo
{
public static void main(String[] args)
{
//method_add();
//method_delete();
//method_update();
method_getChars();
}
public static void method_getChars()
{
StringBuffer sb = new StringBuffer("abcde");
char[] chs = new char[4];
sb.getChars(1,3,chs,1);
for (int i=0;i<chs.length ;i++ )
{
sop("chs["+i+"]="+chs[i]+";");
}
}
public static void method_update()
{
StringBuffer sb = new StringBuffer("abcde");
//sb.replace(2,3,"a");
//sb.setCharAt(2,'a');
sop(sb.toString());
}
public static void method_delete()
{
StringBuffer sb = new StringBuffer("abcde");
//sb.delete(1,3);
//清除缓冲区
//sb = new StringBuffer();
//sb.delete(0,sb.length());
//sb.delete(2,3);
//sb.deleteCharAt(2);
sop(sb.toString());
}
public static void method_add()
{
StringBuffer sb = new StringBuffer();//面盆理论
sb.append("abc").append(true).append(34).append('x');
sop(sb.toString());
sb.insert(1,"qq");
//StringBuffer sb1 =sb.append(34);
//sop("sb==sb1:"+(sb==sb1));
sop(sb.toString());
//sop(sb1.toString());
}
public static void sop(String s)
{
System.out.println(s);
}
}