1 package cn.hello;
2
3 /*
4 *
5 * StringBuffer:线程安全的可变字符串
6 *
7 * StringBuffer和String的区别:前者长度很内容可变,若使用前者拼接,不会太浪费空间
8 *
9 * StringBuffer 的构造
10 * StringBuffer()
11 * StringBuffer(int capacity): 指定容量的字符串缓冲区
12 * StringBuffer(String str): 指定内容的字符串缓冲区对象
13 *
14 * StringBuffer的方法
15 * public int capacity:容量(理论值)
16 * public int length:长度(实际值)
17 * */
18
19 public class Test01 {
20 public static void main(String[] args) {
21 StringBuffer ss=new StringBuffer();
22 System.out.println(ss.capacity()); //16;
23 System.out.println(ss.length()); //0
24
25 StringBuffer s2=new StringBuffer(50);
26 System.out.println(s2.capacity()); //16
27 System.out.println(s2.length()); //0
28
29 StringBuffer s3=new StringBuffer("hello");
30 System.out.println(s3.capacity());
31 System.out.println(s3.length());
32 }
33 }
1 package cn.hello;
2
3 /*
4 * StringBuffer的添加功能
5 * public StringBuffer append(String str) 可以把任意类型传入,并返回缓冲区本身
6 * public StringBuffer insert(int offset,String str)
7 *
8 * StringBuffer的删除功能
9 * public StringBuffer deleteCharAt(int index)
10 * public StringBuffer delete(int start,int end)
11 * 替换功能
12 * public StringBuffer replace(int start, int end, String str)
13 * 反转功能
14 * public StringBuffer reverse()
15 *
16 * */
17
18 public class Test01 {
19 public static void main(String[] args) {
20 StringBuffer s1 = new StringBuffer();
21 // 添加功能
22 /*
23 * StringBuffer s2=s1.append("hello");
24 * System.out.println(s1.equals(s2));
25 */// 由此可见,追加之后返回的是本身,并没有新开空间
26 /*
27 * s1.append("hello"); s1.append(2); s1.append(2.2); // 一步一步添加数据
28 * s1.append(true); s1.append('c');
29 */
30
31 // 方式2 链式添加
32
33 // insert()
34 s1.append("hello");
35 s1.insert(4, "world");
36 System.out.println(s1); // hellworldo
37
38 }
39 }
1 package cn.hello;
2
3 /*
4 *
5 *
6 * StringBuffer的删除功能
7 * public StringBuffer deleteCharAt(int index) 删除指定位置的字符,并返回本身
8 * public StringBuffer delete(int start,int end) 从指定位置开始到指定结束位置 删除内容,并返回本身
9 *
10 *
11 * */
12
13 public class Test01 {
14 public static void main(String[] args) {
15 StringBuffer s1 = new StringBuffer();
16
17 s1.append("hello").append("world").append("java");
18
19 //删除 e 这个字符
20 s1.deleteCharAt(1);
21 System.out.println(s1); //hlloworldjava
22
23 //delete
24 //删除world
25 s1.delete(4, 9);
26 System.out.println(s1); //hllojava
27
28 //删除所有数据
29 s1.delete(0,s1.length());
30 System.out.println(s1);
31
32 }
33 }
1 package cn.hello;
2
3 /*
4 *
5 *
6 * StringBuffer的替换功能
7 * public StringBuffer replace(int start,int end ,String str)
8 *
9 *
10 *
11 * */
12
13 public class Test01 {
14 public static void main(String[] args) {
15 StringBuffer s1 = new StringBuffer();
16
17 s1.append("hello").append("world");
18 System.out.println(s1);
19 //把world 替换为“节日快乐"
20 s1.replace(5, 10, "节日快乐");
21 System.out.println(s1);
22
23
24 }
25 }
1 package cn.hello;
2
3 /*
4 *
5 *
6 *StringBuffer的反转功能
7 * public StringBuffer reverse()
8 *
9 *
10 *
11 * */
12
13 public class Test01 {
14 public static void main(String[] args) {
15 StringBuffer s1 = new StringBuffer();
16
17 s1.append("hello").append("world").append("java");
18 System.out.println(s1);
19 s1.reverse();
20 System.out.println(s1);
21
22
23 }
24 }
1 package cn.hello;
2
3 /*
4 *
5 *
6 *StringBuffer的截取功能
7 * public String substring(int start) 返回的是字符串
8 * public String substring(int start,int end) 返回的是字符串
9 *
10 *
11 *
12 * */
13
14 public class Test01 {
15 public static void main(String[] args) {
16 StringBuffer s1 = new StringBuffer();
17
18 s1.append("hello").append("world").append("java");
19 System.out.println(s1);
20
21
22 String s=s1.substring(5);
23 System.out.println(s);
24 System.out.println(s1);
25
26
27 }
28 }
1 package cn.hello;
2
3 /*
4 * String 和 StringBuffer 的相互转换
5 * 把String 转换为 StringBuffer 是为了使用StringBuffer的特殊功能
6 *
7 *
8 * */
9
10 public class Test01 {
11 public static void main(String[] args) {
12 String s="hello";
13
14 //String ->StringBuffer
15 //方式1
16 StringBuffer s1 = new StringBuffer(s);
17 System.out.println(s1);
18 //方式2
19 StringBuffer s2=new StringBuffer();
20 s2.append(s);
21 System.out.println(s2);
22
23
24 //StringBuffer -> String
25 StringBuffer s3=new StringBuffer("tttttt");
26 //方式1
27 String sq=new String(s3);
28 //方式2
29 String sq2=s3.toString();
30 System.out.println(sq);
31 System.out.println(sq2);
32 }
33 }
1 package cn.hello;
2
3 /*
4 * 把数组拼接成一个字符串
5 * */
6
7 public class Test01 {
8 public static void main(String[] args) {
9 //定义一个数组
10 int[] arr={44,33,22,11,33};
11
12 //方式1 用String拼接
13 String s1=arrayToString(arr);
14 System.out.println(s1);
15 //方式2 用StringBuffer拼接
16 String s2=arr(arr);
17 System.out.println(s2);
18 }
19
20 public static String arr(int[] arr){
21 StringBuffer sw=new StringBuffer();
22 sw.append("[");
23 for(int i=0;i<arr.length;i++){
24 if(i==arr.length-1){
25 sw.append(arr[i]+"]");
26 }else{
27 sw.append(arr[i]+" , ");
28 }
29 }
30
31
32 return sw.toString();
33 }
34
35 public static String arrayToString(int[] arr){
36 String s="";
37 s+="[";
38 for(int i=0;i<arr.length;i++){
39 if(i==arr.length-1){
40 s+=arr[i]+"]";
41 }else{
42 s+=arr[i]+" , ";
43 }
44 }
45 return s;
46 }
47 }