本帖最后由 HM刘博 于 2013-4-8 13:18 编辑
StringBuffer是字符串缓冲区,也可以理解为是一个容器。
特点:
1,长度是可变化的。
2,可以字节操作多个数据类型。
3,最终会通过toString方法变成字符串。
它可以对字符串进行存储、删除、获取、修改、反转、以及将缓冲区指定的数据存储到指定的字符数组中
在JDK1.5版本之后出现了StringBuilder.
StringBuffer是线程同步的,在操作数据时不容易错乱但是效率低
而StringBuilder是线程不同步的,效率高,所以开发中建议使用StringBuilder- class StringBufferDemo
- {
- public static void main(String[] args)
- {
- //method_update();
- StringBuilder sb = new StringBuilder("abcdef");
-
- char[] chs = new char[6];
- sb.getChars(1,4,chs,1);//将字符串中1号到4号角标位数据存储到字符数组1号起始位的字符数组中
- for(int x=0; x<chs.length; x++)//将得到的字符数组打印
- {
- sop("chs["+x+"]="+chs[x]+";");
- }
- draw(3,6);
- draw(8,9);
- }
- public static void method_update()
- {
- StringBuffer sb = new StringBuffer("abcde");
- //sb.replace(1,4,"java");//将角标位1到3的数据替换为java
- sb.setCharAt(2,'k');//将角标位为2的数据改为k
- sop(sb.toString());
- }
- public static void method_del()
- {
- StringBuffer sb = new StringBuffer("abcde");
-
- //sb.delete(1,3);//删除角标位1到2的数据
- //清空缓冲区。
- //sb.delete(0,sb.length());
- sb.deleteCharAt(2);//删除指定位置的字符
- sop(sb.toString());
- }
- public static void method_add()//添加数据
- {
- StringBuffer sb = new StringBuffer();
- sb.insert(1,"qq");//将数据添加到指定位置
- sop(sb.toString());
- }
- public static void sop(String str)
- {
- System.out.println(str);
- }
-
- public static void draw(int row,int col)
- {
- StringBuilder sb = new StringBuilder();
- for(int x=0; x<row; x++)
- {
- for(int y=0; y<col; y++)
- {
- sb.append("*");
- }
- sb.append("\r\n");
- }
- sop(sb.toString());
- }
- }
复制代码 |