关于String的几道算法题

package com.yicurtain.CommonClass;

import org.junit.Test;

//将一个字符串进行反转。将字符串中指定部分进行反转。比如“abcdefg”反转为”abfedcg”
//思路:将“abcdefg”分解为“ab”+“cdef”+“g”,然后将“cdef”进行反转。
public class StringDemo {

    public String reverse(String str,int start,int end){
        StringBuilder builder = new StringBuilder(str.length());
        builder.append(str.substring(0,start)) ;//ab

        for (int i=end;i>=start;i--){
            builder.append(str.charAt(i));//abfedc
        }
        builder.append(str.substring(end+1));//abfedcg

        return  builder.toString();

    }
    @Test
    public  void testreverse(){
        String str="abcdefg";
        String rev=reverse(str,2,5);
        System.out.println(rev);
    }

}

关于String的几道算法题_字符串

package com.yicurtain.CommonClass;

import org.junit.Test;

//获取一个字符串在另一个字符串中出现的次数。
//比如:获取“ ab”在 “abkkcadkabkebfkabkskab” 中出现的次数
//思路:1.使用indexOf()方法,返回第一个"ab"后
//     2.截取第一次包含substr后 的 一串字符串,重复操作1
//     3.返回count
public class StringDemo1 {
    public int getCount(String mainstr,String substr){
        int mainstrLength=mainstr.length();
        int substrLength=substr.length();
        int count=0;
        int index;
       if (mainstrLength>=substrLength){

             while ((index=mainstr.indexOf(substr))!=-1){

                count++;
                mainstr=mainstr.substring(index+substrLength);//截取第一次包含substr后 的 一串字符串

            }
           return count;

       }else{
        return 0;

       }




    }
    @Test
    public void testgetCount(){
        String mainstr="abkkcadkabkebfkabkskab";
        String substr="ab";
        int count=getCount(mainstr,substr);
        System.out.println(count);
    }
}

关于String的几道算法题_字符串_02