Java基础课程---将一个字符串反转,将字符串中指定部分进行反转,比如,"abcdefg", 反转为"abfedcg"

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 替换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;
    }

获取一个字符串在另一个字符串中出现的次数

/**
     * 获取一个字符串在另一个字符串中出现的次数
     *
     */
    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;
    }
原文地址:https://www.cnblogs.com/wjgbok/p/10844451.html