1.将一个字符串部分进行反转,比如“abcdefg”反转为“abfedcg”
public static void main(String[] args) {
String str = "abcdefg";
String reverse = reverse(str,2,5);
System.out.println(reverse);
String s = string1(str,2,5);
System.out.println(s);
}
//方式一:转化为char[]
public static String reverse(String str,int startIndex,int endIndex){
char[] arr = str.toCharArray();
for(int x=startIndex,y=endIndex;x<y;x++,y--){
char temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
return new String(arr);
}
//看作String的拼接
public static String string1(String str,int startIndex,int endIndex){
String reverseStr = str.substring(0,startIndex);
for (int i= endIndex;i >= startIndex;i--){
reverseStr += str.charAt(i);
}
reverseStr += str.substring(endIndex + 1);
return reverseStr;
}
2.获取一个字符串在另一个字符串出现的次数,比如“ab”在“abkkcadkabkebfk”中出现的次数
public static void main(String[] args) {
String maStr = "abkkcadkabkebfk";
String sr = "ab";
int in = demo3(maStr,sr);
System.out.println(in);
}
public static int demo3(String mianStr,String str){
int len1 = mianStr.length();
int len2 = str.length();
int count =0;
int index =0;
if (len1 >= len2){
//方式一:
// while ((index = mianStr.indexOf(str)) != -1){
// count++;
// mianStr = mianStr.substring(index+str.length());
// }
//方式二:
while ((index = mianStr.indexOf(str,index)) != -1){
count++;
index += len2;
}
return count;
}else {
return 0;
}
}
3.找出二个字符串包含的最大相同字符串
public static void main(String[] args) {
String s1 = "sjdsssfjhlosnlll";
String s2 = "bhhellssskollj";
String end = getMaxString(s1,s2);
System.out.println(end);
}
static String getMaxString(String str1,String str2){
if(str1 != null && str2 != null){
String maxstring = (str1.length() >= str2.length()) ? str1 : str2 ;
String minstring = (str1.length() < str2.length()) ? str1 : str2 ;
int length = minstring.length();
for (int i=0;i<length;i++){
for (int x=0,y=length -i;y<length;x++,y++){
String subStr = minstring.substring(x,y);
if(maxstring.contains(subStr)){
return subStr;
}
}
}
}
return null;
}
4.