zoukankan      html  css  js  c++  java
  • 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;
        }
  • 相关阅读:
    Windows 网络监测ping IP输出时间
    python
    遇见问题汇总
    在路上积累
    Condition
    ReentrantReadWriteLock
    AbstractQueuedSynchronizer
    jmeter使用
    使用VisualVM监控java进程
    CNVD漏洞证书(2)
  • 原文地址:https://www.cnblogs.com/wjgbok/p/10844451.html
Copyright © 2011-2022 走看看