StringBuffer类(增删改查及长度可变原理)

 1 package cn.itcast.p2.stringbuffer.demo;
 2 
 3 public class StringBufferDemo {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         /*
 8          * StringBuffer:就是字符串缓冲区。
 9          * 用于存储数据的容器。(数组也是个容器)
10          * 特点:
11          * 1,长度是可变的。
12          * 2,可以存储不同类型数据。
13          * 3,最终要转成字符串进行使用。
14          * 4,可以对字符串修改
15          * 
16          * 既然是一个容器。应该具备什么功能呢?
17          * 1,添加:
18          *         StringBuffer append(data);    
19          *      StringBuffer insert(index,data)
20          * 2,删除:
21          *        StringBuffer delete(start,end);包含头不包含尾
22          *      StringBuffer deleteCharAt(int index);删除指定位置的元素                                 
23          * 3,查找:
24          *      char charAt(index);
25          *      int indexOf(string);
26          *      int lastIndexOf(string);
27          * 4,修改:
28          *      StringBuffer replace(start,end,string)    
29          *      void setCharAt(index,char);
30          * 增删改查 C(create)U(update)R(read)D(delete)
31          */
32         bufferMethodDemo();
33         
34         bufferMethodDemo_1();
35         
36         bufferMethodDemo_2();
37         
38         bufferMethodDemo_3();
39         
40         bufferMethodDemo_4();
41     }
42     private static void bufferMethodDemo_4() {
43         StringBuffer sb = new StringBuffer("abce");
44         
45         //sb.setLength(2);//ab
46         //sb.setLength(0);//相当于清空缓冲区
47         //sb.setLength(10);
48         System.out.println("sb:"+sb);
49         System.out.println("len:"+sb.length());
50         
51         System.out.println(sb.reverse());//ecba
52     }
53     private static void bufferMethodDemo_3() {//修改
54         StringBuffer sb = new StringBuffer("abce");
55         sb.replace(1, 3, "nba");
56         sb.setCharAt(2, 'q');
57         System.out.println(sb);
58     }
59     private static void bufferMethodDemo_2() {//删除
60         StringBuffer sb = new StringBuffer("abce");
61         
62         sb.delete(1, 3);
63         //清空缓冲区。
64         sb.delete(0, sb.length());
65         sb = new StringBuffer();//重新做缓冲区
66         System.out.println(sb);
67     }
68     private static void bufferMethodDemo_1() {//插入
69         StringBuffer sb = new StringBuffer("abce");
70         sb.insert(2, "qq");
71         System.out.println(sb.toString());
72         
73     }
74     public static void bufferMethodDemo() {//添加
75         //创建缓冲区对象。
76          StringBuffer sb = new StringBuffer();
77          
78          StringBuffer s1 = sb.append(4);
79          s1.append(false);
80          System.out.println(sb==s1);//true
81          
82          s1.append("ha").append("ha");
83          System.out.println(sb);
84          s1.insert(1, "haha");
85          System.out.println(sb);
86          
87     }
88     /*
89      * StringBuffer() 构造一个其中不带字符的字符串缓冲区,初始容量为16个字符
90      * 
91      * StringBuffer(int capacity) 构造一个不带字符,但具有指定初始容量的字符串缓冲区。
92      * 
93      * 两个的区别就是看具体适用哪个,用StringBuffer()一旦超过16 就延长不仅开辟空间又要进行运算
94      * 初始化一个指定容量的就可以避免这个情况。
95      */
96 
97 }
View Code

 

posted @ 2021-10-13 22:59  doremi429  阅读(32)  评论(0)    收藏  举报