1.將一個字符串進行反轉。將字符串中指定部分進行反轉。比如將“abcdefg”反轉為”abfedcg”
2.獲取一個字符串在另一個字符串中出現的次數。 比如:獲取“ab”在 “abkkcadkabkebfkabkskab”中出現的次數
1 package string; 2 3 /* 4 * 1.將一個字符串進行反轉。將字符串中指定部分進行反轉。比如將“abcdefg”反轉為”abfedcg” 5 */ 6 public class Test1 { 7 public static void main(String[] args) { 8 String str2 = "abcdefg"; 9 String str3 = reverseString(str2, 2, 5); 10 System.out.println(str3); 11 } 12 13 public static String reverseString(String str, int start, int end) { 14 String str1 = str.substring(0, start); 15 for (int i = end; i >= start; i--) { 16 char c = str.charAt(i); 17 str1 += c; 18 } 19 str1 += str.substring(end + 1); 20 return str1; 21 } 22 }
1 package string; 2 3 public class Test2 { 4 /* 5 * 2.獲取一個字符串在另一個字符串中出現的次數。 比如:獲取“ab”在 “abkkcadkabkebfkabkskab”中出現的次數 6 */ 7 public static void main(String[] args) { 8 int i = getTime("abkkcadkabkebfkabkskab", "abk"); 9 System.out.println(i); 10 } 11 12 public static int getTime(String str1, String str2) { 13 int count = 0; 14 int len; 15 while ((len = str1.indexOf(str2)) != -1) { 16 count++; 17 str1 = str1.substring(len + str2.length()); 18 } 19 return count; 20 } 21 }
1 package string; 2 3 /* 4 * 3.獲取兩個字符串中最大相同子串。比如:str1 = "abcwerthelloyuiodef";str2 = "cvhellobnm" 5 */ 6 public class Test3 { 7 public static void main(String[] args) { 8 String str1 = "abcwerthelloyuiodef"; 9 String str2 = "cvhellobnm"; 10 StringBuilder str = getMaxSubString(str1, str2); 11 System.out.println(str); 12 } 13 14 public static StringBuilder getMaxSubString(String str1, String str2) { 15 String maxStr = (str1.length() > str2.length()) ? str1 : str2; 16 String minStr = (str1.length() < str2.length()) ? str1 : str2; 17 int len = minStr.length(); 18 StringBuilder sb=new StringBuilder(); 19 for (int i = 0; i < len; i++) { 20 for (int x = 0, y = len - i; y <= len; x++, y++) { 21 String str = minStr.substring(x, y); 22 if (maxStr.contains(str)) { 23 sb.append(str); 24 } 25 } 26 if(sb.length()!=0){ 27 return sb; 28 } 29 } 30 return null; 31 } 32 33 }