1 public class DemoClass4String {
2 public static void main(String[] args) throws Exception {
3 //TODO 字符串有字符组成,字符有三个字节组成,(ascii除外)
4 //java.lang.String
5
6 /*
7 * 1.字符串 字符 字节
8 * */
9 char[] ch = {'中', '国'};
10 String str = new String(ch);
11 System.out.println(str); //中国
12
13 byte[] by = { -28,-72,-83,-27,-101,-67 };
14 String str2 = new String(by, "UTF-8"); //中国
15 System.out.println(str2);
16
17 /*
18 * 2.转移字符
19 * */
20 String str3 = "\"";
21 System.out.println(str3);
22 // \' \n(换行符) \t(制表符tab) \\
23 System.out.println("\'"); // '
24 System.out.println("a\nb"); //a
25 //b
26 System.out.println("a\tb"); //a b
27 System.out.println("a\\b"); //a\b
28
29 /*
30 * 3.拼接
31 * */
32 String str4 = "a" + "b";
33 String str5 = "ab";
34 System.out.println(str4.hashCode()); //3105
35 System.out.println(str5.hashCode()); //3105
36
37 String str6 = "a"+ 1;
38 String str7 = 1+ "a";
39 System.out.println(str6); //也是字符串:a1
40 System.out.println(str7); //也是字符串:1a
41
42 String str8 =1 + 2 + "a";
43 System.out.println(str8); //3a 而不是:12a
44
45 //concat() 实现拼接
46 String str9 = "a";
47 System.out.println(str9.concat("1234")); //a1234
48
49 /*
50 *4. 比较,两个字符串里的字符相等就是相等,区分大小写的
51 * */
52 String str10 = "a";
53 String str11 = "b";
54 String str12 = "A";
55 System.out.println(str10.equals(str11)); //false
56 System.out.println(str10.equals(str12)); //false ascii a A 是不同的
57 System.out.println(str10.equalsIgnoreCase(str12)); //true 忽略大小写
58
59 /*
60 * i = 正数 str10 > str12
61 * i = 负数 str10 < str12
62 * i = 0 str10 = str12
63 * */
64 int i = str10.compareTo(str12);
65 System.out.println(i); //32 为什么是32?
66 System.out.println((byte)'a'); // 97
67 System.out.println((byte)'A'); // 65
68
69 //忽略大小写的比较
70 int i1 = str10.compareToIgnoreCase(str12);
71 System.out.println(i1); // 0
72
73 /*
74 * 5. 截断
75 * */
76 String str13 = "FrankWangSky";
77 System.out.println(str13.substring(0, 5)); //Frank 0:开始index(含),5:结束index(不含)
78 System.out.println(str13.substring(0, "Frank".length())); //Frank
79 System.out.println(str13.substring(5)); //WangSky
80
81 //split() 分解方法
82 String[] wangs = str13.split("Wang");
83 for (String wang : wangs) {
84 System.out.println(wang);
85 }
86
87 //trim() 去掉字符串首尾空格
88 String str14 = " Frank Wang ";
89 System.out.println("!"+ str14.trim()+ "!"); //!Frank Wang! 前后空格没有了
90
91 /*
92 *6. 替换
93 * */
94 //replace 纯粹的替换
95 String str15 = "FrankWang Frank";
96 System.out.println(str15.replace("Frank", "Tom"));
97
98 //replaceAll 根据规则替换,多个不同字符替换为同一个,不同字符用|分割
99 String str16 = "FrankWang EmmaJIa";
100 System.out.println(str16.replaceAll("Frank|Emma", "Tom"));
101
102 /*
103 *7. 转换大小写
104 * */
105 String str17 = "FrankWang";
106 System.out.println(str17.toLowerCase());
107 System.out.println(str17.toUpperCase());
108
109 /*
110 * 8.查询 toCharArray getBytes charAt indexOf lastIndexOf
111 * startsWith endsWith isEmpty
112 * */
113 String str18 = "中国";
114 char[] charArray = str18.toCharArray();
115 for (char c : charArray) {
116 System.out.print(c+" ");
117 }
118 //上面结果:中 国
119
120 byte[] bytes = str18.getBytes();
121 for (byte b : bytes) {
122 System.out.print(b+" ");
123 }
124 //上面结果:-28 -72 -83 -27 -101 -67
125
126 System.out.println();
127 //查询指定索引的字符
128 System.out.println(str18.charAt(0));
129
130 String str19 = "Frank Wang Frank";
131 System.out.println(str19.indexOf("Frank")); //0 字符开始的下标
132 System.out.println(str19.lastIndexOf("Frank")); //11 字符开始的下标
133
134 System.out.println(str19.startsWith("F")); //true
135 System.out.println(str19.endsWith("Frank")); //true
136
137 String str20 = " ";
138 System.out.println(str20.isEmpty()); //false 空字符串,不是空,尽管页面不显示
139
140 /*
141 *9. StringBuilder
142 * */
143 StringBuilder sb = new StringBuilder();
144 sb.append("abcdef");
145 System.out.println(sb.toString());
146 System.out.println(sb.reverse().toString());
147 System.out.println(sb.insert(1, "A"));
148
149 }
150 }