1 将一个字符串反转,将字符串中指定部分进行反转,比如,"abcdefg", 反转为"abfedcg" 方式一
public class StringDemo {// 方式一 转为 char[]public String reverse(String str,int startIndex,int endIndex){if(str !=null && str.length() !=0){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);}return null;}
// 第二种方式
// 方式二public String revers1(String str ,int startIndex,int endIndex){if(str !=null){// 第一部分String reverseStr = str.substring(0,endIndex);// 第二部分for(int i = endIndex;i>=startIndex;i--){reverseStr +=str.charAt(i);}//第三部分reverseStr +=str.substring(endIndex+1);return reverseStr;}return null;}
// 方式三
// 方式三 使用 StringBuffer / StringBuilder 替换Stringpublic String reverse2(String str,int startIndex,int endIndex){if(str !=null){StringBuilder builder = new StringBuilder(str.length());// 第一部分builder.append(str.substring(0,startIndex));//第二部分for(int i = endIndex;i>=startIndex;i--){builder.append(str.charAt(i));}//第三部分builder.append(str.substring(endIndex+1));return builder.toString();}return null;}
2 获取一个字符串在另一个字符串中出现的次数
/*** 获取一个字符串在另一个字符串中出现的次数**/public int getCount(String mainStr,String subStr){int mainLength = mainStr.length();int subLength = subStr.length();int count = 0;int index ;if(mainLength>=subLength){if((index=mainStr.indexOf(subStr))!=-1){count++;mainStr = mainStr.substring(index+subStr.length());}return count;}else{return 0;}}
3 获取两字符串中最大的相同的字串
//获取两个字符串中,最大相同字串public String getMaxSameString(String str1 ,String str2){if(str1 !=null && str2 !=null){String maxStr = (str1.length()>=str2.length())?str1:str2;String minStr = (str1.length()< str2.length())?str1:str2;int length = minStr.length();for(int i = 0;i<length;i++){for(int x = 0,y=length-i;y<=length;x++,y++){String subStr = minStr.substring(x,y);if(maxStr.contains(subStr)){return subStr;}}}}return null;}
// 如果你存在多个长度相同的最大相同字串
// 如果你存在多个长度相同的最大相同字串// 此时先返回String[] 后面可以用集合中的ArrayList 替换,较方便。public String[] getMaxSameString12(String str1,String str2){if(str1 !=null && str2 !=null){StringBuffer stringBuffer = new StringBuffer();String maxString = (str1.length()>str2.length())? str1:str2;String minString = (str1.length()>str2.length())?str2:str1;int len = minString.length();for(int i= 0;i<len;i++){for(int x = 0,y = len-i;y<=len;x++,y++){String subString = minString.substring(x,y);if(maxString.contains(subString)){stringBuffer.append(subString+",");}}if(stringBuffer.length() !=0){break;}}}return null;}