JAVA String指定字符串逆序,查找字符串子串个数

1.指定字符串逆序

三种方式

Ⅰ.转换为字符数组,指定开始位置和结束位置反转

Ⅱ.String字符串拼接,分为三部分,第一部分和第三部分取子串用substring保持不变,中间部分反转

Ⅲ.使用StringBuilder appen,方法添加字符串跟Ⅱ类似

public class Stringreverse {
    public static void main(String[] args) {
        String s1 ="aaacccbbb";
        String s2 = reverse1(s1, 3, 8);
        System.out.println(s2);
        String s3 = reverse2(s1, 3, 8);
        System.out.println(s3);
        String s4 = reverse3(s1, 3, 8);
        System.out.println(s4);

    }
    //方式一转换为char[]数组
    public static String reverse1(String str,int startindex,int endindex){
        if (str!=null||str.length()!=0)
        {
            char[] arr = str.toCharArray();
            for (int i = startindex, j = endindex;i<j;i++,j--){
                char temp = arr[j];
                arr[j] =arr[i];
                arr[i] =temp;
            }
            return new String(arr);
        }
     return null;
        //方式二String拼接
    } public static String reverse2(String str,int startindex,int endindex){
        if (str!=null||str.length()!=0)
        {
            String str1 = str.substring(0, startindex);
            for (int i=endindex;i>=startindex;i--)
            {
                str1 +=str.charAt(i);
            }
            String str2 = str.substring(endindex + 1);
            str1 +=str2;
            return str1;
        }
        return null;
    }
    //方式三StringBuilder append方法添加字符串
    public static String reverse3(String str,int startindex,int endindex){
       if (str!=null||str.length()!=0)
       {
           StringBuilder xxs = new StringBuilder(str.length());
           xxs.append(str.substring(0,startindex));
           for (int i=endindex;i>=startindex;i--)
           {
               xxs.append(str.charAt(i));
           }
           xxs.append(str.substring(endindex+1));
           return xxs.toString();
       }
       return null;

       }
    }

结果


2.查找字符串子串个数

        这里使用String.indexof(tring str, int fromIndex)方法,指定主字符串和子字符串,如果返回值不为-1,就增加计数,然后fromlndex变为初始索引位置加子字符串长度再次查找

public class StringMethodTest {
    public static void main(String[] args) {
        String xxs = "AAVVAAVVAAAAAAA";
        String xxs1="AA";
        int i = stringDemo(xxs, xxs1);
        System.out.println(i);
    }
    public static int stringDemo(String mainstr, String substr){
        int slen = substr.length();
        int mlen = mainstr.length();
        int count= 0;
        int index= 0;
        if (mlen>slen)
        {
            while( (index = mainstr.indexOf(substr,index))!=-1)
            {
                count++;
                index+=slen;
            }
            return count;

        }
        else {
            return 0;
        }
    }
}

结果

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值