1 **
2 * 常用String字符串操作
3 */
4 public class StringTest {
5 public static void main(String args[]){
6 //StringBasicOper();
7 StringCompare();
8 }
9
10 /**
11 * 字符串基本操作
12 */
13 public static void StringBasicOper(){
14 String str = "如何才能变得像棋哥一样优秀?算了吧,憋吹牛逼!";
15 // length() 方法
16 int length = str.length();
17 System.out.println("字符串的长度为:" + length);
18 // chatAt()方法,得到指定下标索引的字符串
19 char ch = str.charAt(5);
20 System.out.println("字符串下标为5的字符为:"+ ch);
21 //
22 char chars[] = new char[80];
23 str.getChars(0, 14, chars, 0);
24 System.out.println(chars);
25 // toCharArray()方法 字符串转数组
26 char[] charst = str.toCharArray();
27 System.out.println(charst.length);
28 }
29
30 /**
31 * 字符串比较
32 */
33 public static void StringCompare(){
34 String str1 = "elapant";
35 String str2 = "ELEPANT"; //定义两个字符串
36 String str3 = "Apple";
37 String str4 = "apple";
38 /***1、compareTo方法***/
39 //不忽略字符串字符大小写
40 if(str1.compareTo(str2)>0){
41 System.out.println(str1+">"+str2);
42 }else if(str1.compareTo(str2) == 0){
43 System.out.println(str1+"="+str2);
44 }else{
45 System.out.println(str1+"="+str2);
46 }
47 /***2、compareToIgnoreCase()方法***/
48 //忽略字符串字符大小写
49 if(str1.compareToIgnoreCase(str2)>0){
50 System.out.println(str1+">"+str2);
51 }else if(str1.compareToIgnoreCase(str2) == 0){
52 System.out.println(str1+"="+str2);
53 }else{
54 System.out.println(str1+"<"+str2);
55 }
56 /***3、equals()方法***/
57 //不忽略字符串字符大小写
58 if(str3.equals(str4)){
59 System.out.println(str3+"="+str4);
60 }else{
61 System.out.println(str3+"!="+str4);
62 }
63 /***4、equalsIgnoreCase()方法***/
64 //忽略字符串字符大小写
65 if(str3.equalsIgnoreCase(str4)){
66 System.out.println(str3+"="+str4);
67 }else{
68 System.out.println(str3+"!="+str4);
69 }
70
71 String str = new String("天下");
72 str = new String("第一");
73 System.out.println(str);
74
75 String str5 = "天下太平";
76 str5 = str5 + "国泰民安";
77 System.out.println(str5);
78 System.out.println(1 << 4);
79 System.out.println(1 + 5 + 4);
80
81 String strA = "abc";
82 String strB = "abc";
83 String strC = new String("abc");
84 String strD = new String("abc");
85 System.out.println(strA == strB);
86 System.out.println(strA.equals(strB));
87 System.out.println(strC == strD);
88 System.out.println(strC.equals(strD));
89 System.out.println(strA == strC);
90 System.out.println(strA.equals(strC));
91 }
92
93 /**
94 * 字符串转换
95 */
96 public static void StringConvert(){
97 /***将字符串类型转换为其他数据类型***/
98 boolean bool = Boolean.getBoolean("false"); //字符串类型转换为布尔类型
99 int integer = Integer.parseInt("20"); //字符串类型转换为整形
100 long LongInt = Long.parseLong("1024"); //字符串类型转换为长整形
101 float f = Float.parseFloat("1.521"); //字符串类型转换为单精度浮点型
102 double d = Double.parseDouble("1.52123");//字符串类型转换为双精度浮点型
103 byte bt = Byte.parseByte("200"); //字符串类型转换为byte型
104 char ch = "棋哥".charAt(0);
105 /***将其他数据类型转换为字符串类型方法1***/
106 String strb1 = String.valueOf(bool); //将布尔类型转换为字符串类型
107 String stri1 = String.valueOf(integer); //将整形转换为字符串类型
108 String strl1 = String.valueOf(LongInt); //将长整型转换为字符串类型
109 String strf1 = String.valueOf(f); //将单精度浮点型转换为字符串类型
110 String strd1 = String.valueOf(d); //将double类型转换为字符串类型
111 String strbt1 = String.valueOf(bt); //将byte转换为字符串类型
112 String strch1 = String.valueOf(ch); //将字符型转换为字符串类型
113 }
114
115
116 /**
117 * 字符串查找
118 */
119 public static void StringSearchChar(){
120 String str = "How qi bocome handsome like qi ge"; //定义一个长字符串
121 System.out.println("该字符串为:"+str);
122 /***1、indexOf()方法查找字符首个出现位置格式1,2***/
123 int index1 = str.indexOf(" "); //找到第一个空格所在的索引
124 int index2 = str.indexOf(" ",4); //找到索引4以后的第一个空格所在索引
125 System.out.println("第一个空格所在索引为:"+index1);
126 System.out.println("索引4以后的第一个空格所在索引为:"+index2);
127 System.out.println("*****************");
128 /***2、lastIndexOf()方法查找字符最后出现位置格式1,2***/
129 int index3 = str.lastIndexOf(" "); //找到最后一个空格所在的索引
130 int index4 = str.lastIndexOf(" ",10);//找到索引10以后的第一个空格所在索引
131 System.out.println("最后一个空格所在索引为:"+index3);
132 System.out.println("索引10以前最后一个空格所在索引为:"+index4);
133 System.out.println("*****************");
134 /***3、indexOf()方法查找子字符串第一次出现位置格式1,2***/
135 int index5 = str.indexOf("qi"); //找到"qi"子字符串第一次出现位置的索引
136 int index6 = str.indexOf("qi",5);//找到索引5以后子字符串"qi"第一个出现位置所在索引
137 System.out.println("子字符串qi第一次出现位置的索引号为:"+index5);
138 System.out.println("索引5以后子字符串qi第一次出现位置的索引号为:"+index6);
139 System.out.println("*****************");
140 /***4、lastIndexOf()方法查找子字符串最后一次出现位置格式1,2***/
141 int index7 = str.lastIndexOf("qi");
142 int index8 = str.lastIndexOf("qi",5);
143 System.out.println("子字符串qi最后一次出现位置的索引号为:"+index7);
144 System.out.println("索引号5以后子字符串qi最后一次出现位置的索引号为:"+index8);
145 }
146
147 /**
148 * 字符串截取和拆分
149 */
150 public static void StringCutAndSplit(){
151 String str = "How to cut and split strings"; //定义字符串
152 System.out.println("字符串为:"+str);
153 int length = str.length(); //获取字符串长度,保存到变量中
154 System.out.println("字符串长度为:"+length);
155 /***1、substring()方法截取出第一个单词和最后一个单词***/
156 //首先配合indexOf()和lastIndexOf()方法找到第一个单词和最后一个单词前后空格的索引号
157 //第一个单词的左范围索引为0,最后一个单词的右范围索引为length-1
158 int firstIndex = str.indexOf(' '); //找到第一个空格所在位置
159 int lastIndex = str.lastIndexOf(' '); //找到最后一个空格所在位置
160 System.out.println("第一个空格的索引号为:"+firstIndex);
161 System.out.println("最后一个空格的索引号为:"+lastIndex);
162 //利用substring()方法根据第一个和最后一个单词的索引范围截取出第一个和最后一个单词
163 String firstWord = str.substring(0,firstIndex); //截取出第一个单词
164 String lastWord = str.substring(lastIndex+1,length);//截取出最后一个单词
165 System.out.println("第一个单词为:"+firstWord);
166 System.out.println("最后一个单词为:"+lastWord);
167 /***1、split()方法拆分出所有单词***/
168 String stringArray[] = str.split(" "); //根据空格要求拆分出所有单词保存到字符串数组中
169 System.out.println("拆分之后的各个词汇为:"); //输出提示信息
170 for(int i = 0;i<stringArray.length;i++){
171 System.out.print(stringArray[i]+"\t");
172 }
173 }
174
175 /**
176 * 字符串查找和替换
177 */
178 public static void StringFindandReplace() {
179 String str1 = "vbasic";
180 String str2 = "Vbasic";
181 System.out.println("str1 = "+str1);
182 System.out.println("str2 = "+str2);
183 /***1、concat()方法将两字符串合并***/
184 String str3 = str1.concat(str2);
185 System.out.println("str1和str2合并后的字符串为:"+str3);
186 /***2、toLowerCase()方法将str1字符全部转换为小写***/
187 String str4 = str1.toLowerCase();
188 System.out.println("str1的字符全部转换为小写:"+str4);
189 /***3、toUpperCase()方法将str2字符全部转换为大写***/
190 String str5 = str2.toUpperCase();
191 System.out.println("str2的字符全部转换为大写:"+str5);
192 /***4、实现字符串的替换,原字符串内容不变***/
193 String str6 = str1.replaceFirst("(?i)VBASIC","C++");
194 String str7 = str2.replaceFirst("(?-i)VBASIC","C++");
195 System.out.println("替换后的str1:"+str6);
196 System.out.println("替换后的str2:"+str7);
197 }
198 }