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 }