1 將一個字符串反轉,將字符串中指定部分進行反轉,好比,"abcdefg", 反轉爲"abfedcg" 方式一app
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; }
// 第二種方式ui
// 方式二 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; }
// 方式三spa
// 方式三 使用 StringBuffer / StringBuilder 替換String public 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 獲取一個字符串在另外一個字符串中出現的次數code
/** * 獲取一個字符串在另外一個字符串中出現的次數 * */ 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 獲取兩字符串中最大的相同的字串blog
//獲取兩個字符串中,最大相同字串 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; }