String類(lèi)中提供了豐富的用于操作字符串的方法。
int indexOf(String str)
該方法用于返回當(dāng)給定字符串在當(dāng)前字符串中的位置,若當(dāng)前字符串不包含給定字符串則返回-1。
重載的方法
int indexOf(String str,int formIndex),從指定下標(biāo)處(包含)查詢(xún)子串,返回返回當(dāng)給定字符串在當(dāng)前字符串中的位置,若當(dāng)前字符串不包含給定字符串則返回-1。
用自己的算法實(shí)現(xiàn)startsWith和endsWith功能。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package com.hz.practice; /** * 1. 用自己的算法實(shí)現(xiàn)startsWith和endsWith功能。 * @author ztw * */ public class Practice01 { public static void main(String[] args) { String str = string">"qwewrewr" ; // boolean temp = str.endsWith("r"); // System.out.println(temp); /* * startsWith */ char[] arr = str.toCharArray(); char c = 'r'; if(arr[0]==c){ System.out.println("true"); }else{ System.out.println("false"); } /* * endsWith */ if (arr[arr.length- 1 ]==c){ System.out.println( "true" ); } else { System.out.println( "false" ); } } } |
輸出結(jié)果:
1
2
|
false true |
2.采用字符的移位方式實(shí)現(xiàn)字符文本加密解密。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package com.hz.practice; import java.util.Scanner; /** * 2.采用字符的移位方式實(shí)現(xiàn)字符文本加密解密。 * @author ztw * */ public class Practice02 { public static void main(String[] args) { System.out.println( "請(qǐng)輸入一個(gè)字符串" ); Scanner sc = new Scanner(System.in); String str1 = new String(); str1=sc.nextLine(); System.out.println(str1.replaceAll( "a" , "1." ) .replaceAll( "b" , "2." ).replaceAll( "c" , "3." ) .replaceAll( "d" , "4." ).replaceAll( "e" , "5." ) .replaceAll( "f" , "6." ).replaceAll( "g" , "7." ) .replaceAll( "h" , "8." ).replaceAll( "i" , "9." ) .replaceAll( "j" , "10." ).replaceAll( "k" , "11." ) .replaceAll( "l" , "12." ).replaceAll( "m" , "13." ) .replaceAll( "n" , "14." ).replaceAll( "o" , "15." ) .replaceAll( "p" , "16." ).replaceAll( "q" , "17." ) .replaceAll( "r" , "18." ).replaceAll( "s" , "19." ) .replaceAll( "t" , "20." ).replaceAll( "u" , "21." ) .replaceAll( "v" , "22." ).replaceAll( "w" , "23." ) .replaceAll( "x" , "24." ).replaceAll( "y" , "25." ) .replaceAll( "z" , "26." )); } } |
輸出結(jié)果:
1
2
3
|
請(qǐng)輸入一個(gè)字符串 asdsddffg 1.19 . 4.19 . 4.4 . 6.6 . 7 . |
3.驗(yàn)證是隨機(jī)生成4位驗(yàn)證碼,由用戶(hù)輸入并否輸入正確, 如果輸入錯(cuò)誤就生成新的驗(yàn)證碼讓用戶(hù)重新輸入,最多輸入5次!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package com.hz.practice; import java.util.Random; import java.util.Scanner; /** * 3.驗(yàn)證是隨機(jī)生成4位驗(yàn)證碼,由用戶(hù)輸入并否輸入正確, * 如果輸入錯(cuò)誤就生成新的驗(yàn)證碼讓用戶(hù)重新輸入,最多輸入5次 * @author ztw * */ public class Practice03 { public static void main(String[] args) { String str= "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ; char []arr= new char [ 4 ]; //定義一個(gè)長(zhǎng)度是4的char型數(shù)組 Random sj= new Random(); System.out.println( "驗(yàn)證碼是:" ); for ( int i= 0 ;i< 4 ;i++) { arr[i]=str.charAt(sj.nextInt( 61 )); //從str中隨機(jī)截取4個(gè)單個(gè)字符并賦值給arr這個(gè)數(shù)組存放 } System.out.println(arr); Scanner sc= new Scanner(System.in); System.out.println( "請(qǐng)輸入驗(yàn)證碼" ); String a= new String(arr); //把數(shù)組轉(zhuǎn)換成字符串 //定義輸入次數(shù) for ( int j= 0 ;j< 5 ;j++) { if (sc.nextLine().equals(a)) { System.out.println( "驗(yàn)證碼輸入正確" ); } else { System.out.println( "驗(yàn)證碼輸入有誤,請(qǐng)重新輸入" ); if (j<= 3 ) { System.out.print( "請(qǐng)輸入驗(yàn)證碼" ); for ( int i= 0 ;i< 4 ;i++) { arr[i]=str.charAt(sj.nextInt( 61 )); //從str中隨機(jī)截取4個(gè)單個(gè)字符并賦值給arr這個(gè)數(shù)組存放 } System.out.println(arr); a= new String (arr); } else { System.out.println( "輸入有誤,對(duì)不起,5次機(jī)會(huì)已用完" ); } } } } } |
輸出結(jié)果:
1
2
3
4
5
|
驗(yàn)證碼是: AVA8 請(qǐng)輸入驗(yàn)證碼 AVA8 驗(yàn)證碼輸入正確 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package com.hz.practice; /** * 4.獲取一個(gè)字符串在另一個(gè)字符串中出現(xiàn)的次數(shù) 思路: 1.定義一個(gè)計(jì)數(shù)器。 2.獲取子串第一次出現(xiàn)的位置 3.從第一次出現(xiàn)的位置后剩余的字符串中繼續(xù)獲取子串出現(xiàn)的位置,每獲取一次計(jì)數(shù)器加1 4,當(dāng)獲取不到時(shí),計(jì)數(shù)完成 * @author ztw * */ public class Practice04 { public static void main(String[] args) { String str1 = "asdasdas" ; String str2 = "as" ; //1.定義一個(gè)計(jì)數(shù)器。 int total = 0 ; for (String temp = str1; temp!= null && temp.length()>=str2.length();) { //2.獲取子串第一次出現(xiàn)的位置 if (temp.indexOf(str2) == 0 ){ //3.從第一次出現(xiàn)的位置后剩余的字符串中繼續(xù)獲取子串出現(xiàn)的位置,每獲取一次計(jì)數(shù)器加1 total ++; } temp = temp.substring( 1 ); System.out.print(temp+ ", " ); } //4,當(dāng)獲取不到時(shí),計(jì)數(shù)完成 System.out.println( "計(jì)數(shù)完成:" +total); } } |
輸出結(jié)果:
1
|
sdasdas, dasdas, asdas, sdas, das, as, s, 計(jì)數(shù)完成: 3 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package com.hz.practice; /** * 5.獲取兩個(gè)子串中最大相同子串 思路: 1.將短的哪個(gè)子串按照長(zhǎng)度遞減的方式獲取到 2.將每次獲取到的子串去長(zhǎng)串中判斷是否包含,如果包含,已經(jīng)找到 * @author ztw * */ public class Practice05 { public static String getMaxSubString(String s1,String s2) { String max = "" ,min = "" ; max = (s1.length()>s2.length())?s1: s2; min = (max==s1)?s2: s1; // sop("max="+max+"...min="+min); for ( int x= 0 ; x<min.length(); x++) { for ( int y= 0 ,z=min.length()-x; z!=min.length()+ 1 ; y++,z++) { String temp = min.substring(y,z); sop(temp); if (max.contains(temp)) //if(s1.indexOf(temp)!=-1) return temp; } } return "" ; } public static void main(String[] args) { String s1 = "ab" ; String s2 = "cvhellobnm" ; sop(getMaxSubString(s2,s1)); } public static void sop(String str) { System.out.print(str+ ", " ); } } |
輸出結(jié)果:
1
|
ab, a, b, b, |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
package com.hz.practice; import java.util.Scanner; /** * 6、寫(xiě)一個(gè)方法判斷一個(gè)字符串是否對(duì)稱(chēng) * @author ztw * */ public class Practice06 { public static void main(String[] args){ Scanner input = new Scanner(System.in); String str = input.next(); //接收任意字符串 isOk1(str); } /** * 判斷字符串是否對(duì)稱(chēng)的方法(一) * 通過(guò)取取索引對(duì)應(yīng)值來(lái)進(jìn)行一一比對(duì) * @param str */ public static void isOk1(String str){ boolean result = true ; int count =(str.length()- 1 )/ 2 ; for ( int x= 0 ;x<=count;x++ ){ if (str.charAt(x)!=str.charAt(str.length()- 1 -x)){ result = false ; break ; } } if (!result) System.out.println( "該字符串是不對(duì)稱(chēng)的" ); else System.out.println( "該字符串是對(duì)稱(chēng)的" ); } /* * public static void main(String[] args){ Scanner input = new Scanner(System.in); String str = input.next();//接收任意字符串 if (isOk2(str)==true) { System.out.println("真,對(duì)稱(chēng)!"); }else{ System.out.println("假,不對(duì)稱(chēng)!"); } } /** * 方法二 * 通過(guò)String加強(qiáng)類(lèi)中的取反方法reverse獲取其逆向值 * 再與原字符串相比是否相等! * 等于則返回TRUE,否則FALSE * @param str * @return */ /* public static boolean isOk2(String str){ StringBuffer sb = new StringBuffer(str); String str2 = sb.reverse().toString(); return str.equals(str2); } */ } |
輸出結(jié)果:
1
2
|
asdsa 該字符串是對(duì)稱(chēng)的 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package com.hz.practice; /** * 9、編寫(xiě)一個(gè)程序,將下面的一段文本中的各個(gè)單詞的字母順序翻轉(zhuǎn), “To be or not to be",將變成"oT eb ro ton ot eb."。 * @author ztw * */ public class Practice09 { public static void main(String[] args) { String str = "To be or not to be" ; String[] str2 = str.split( " " ); for ( int i = 0 ; i < str2.length; i++) { char [] ci = str2[i].toCharArray(); System.out.print( " " ); for ( int j = ci.length- 1 ; j >= 0 ; j--) { System.out.print(ci[j]); } } } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package com.hz.practice; /** * 10、已知字符串:"this is a test of java". 按要求執(zhí)行以下操作: (1) 統(tǒng)計(jì)該字符串中字母s出現(xiàn)的次數(shù) (2) 取出子字符串"test" (3) 用多種方式將本字符串復(fù)制到一個(gè)字符數(shù)組Char[] str中. (4) 將字符串中每個(gè)單詞的第一個(gè)字母變成大寫(xiě), 輸出到控制臺(tái)。 (5) 用兩種方式實(shí)現(xiàn)該字符串的倒敘輸出。(用StringBuffer和for循環(huán)方式分別實(shí)現(xiàn)) (6) 將本字符串轉(zhuǎn)換成一個(gè)字符串?dāng)?shù)組,要求每個(gè)數(shù)組元素都是一個(gè)有意義的額英文單詞,并輸出到控制臺(tái) * @author ztw * */ public class Practice10 { public static void main(String[] args) { String str = "this is a test of java" ; // (1) 統(tǒng)計(jì)該字符串中字母s出現(xiàn)的次數(shù) int count = 0 ; for ( int i = 0 ; i < str.length(); i++) { if (str.charAt(i)== 's' ){ count++; } } System.out.println( "字符串中字母s出現(xiàn)的次數(shù):" +count); // (2) 取出子字符串"test" String str2 = (String) str.subSequence( 10 , 14 ); System.out.println(str2); // (3) 用多種方式將本字符串復(fù)制到一個(gè)字符數(shù)組Char[] str中. char [] c = str.toCharArray(); System.out.println(c); for ( int i = 0 ; i < c.length; i++) { System.out.print(c[i]); } System.out.println(); // (4) 將字符串中每個(gè)單詞的第一個(gè)字母變成大寫(xiě), 輸出到控制臺(tái)。 str=str.toLowerCase(); String[] tt=str.split( " " ); System.out.println(tt.length); for ( int i= 0 ;i<tt.length;i++) { //加個(gè)判斷,長(zhǎng)度大于0的 if (tt[i].length()> 0 ){ System.out.print(String.valueOf(tt[i].charAt( 0 )).toUpperCase()); System.out.print(tt[i].substring( 1 )+ " " ); } } System.out.println(); // (5) 用兩種方式實(shí)現(xiàn)該字符串的倒敘輸出。(用StringBuffer和for循環(huán)方式分別實(shí)現(xiàn)) StringBuffer sb = new StringBuffer(str); System.out.println(sb.reverse().toString()); char [] c3 = str.toCharArray(); for ( int i = c3.length- 1 ; i >= 0 ; i--) { System.out.print(c3[i]); } System.out.println(); // (6) 將本字符串轉(zhuǎn)換成一個(gè)字符串?dāng)?shù)組,要求每個(gè)數(shù)組元素都是一個(gè)有意義的額英文單詞,并輸出到控制臺(tái) String[] str5=str.split( " " ); for ( int i = 0 ; i < str5.length; i++) { System.out.print(str5[i]+ ", " ); } } } |
輸出結(jié)果:
1
2
3
4
5
6
7
8
9
|
字符串中字母s出現(xiàn)的次數(shù): 3 test this is a test of java this is a test of java 6 This Is A Test Of Java avaj fo tset a si siht avaj fo tset a si siht this , is, a, test, of, java, |
總結(jié)
以上就是本文關(guān)于Java探索之string字符串的應(yīng)用代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
原文鏈接:http://blog.csdn.net/qq_33624284/article/details/53606519