字符串中指定部分进行反转

将字符串中指定部分进行反转。比如“abcdefg”反转为”abfedcg”

代码实现

方式一:

先将字符串转成char[]数组,然后for循环反转指定范围的元素,最后将char[]数组再转成字符串

    public static String reverseStr(String s, int start, int end){
        char[] chars = s.toCharArray();
        return reverseArray(chars, start, end);
    }

    public static String reverseArray(char[] chars, int start, int end){
        for (int i = start, j = end; i < j; i++, j--) {
            char temp = chars[i];
            chars[i] = chars[j];
            chars[j] = temp;
        }
        return new String(chars);
    }
    
	@Test
    public void test2(){
        String s1 = "abcdefg";
        System.out.println(reverseStr(s1,2,5));
    }

方式二:

使用subString()方法将字符串分割成三部分,反转前一部分,反转部分、反转后一部分。然后进行字符串的拼接。

    public String reverseStr1(String str, int start, int end){

        //反转前一部分
        String newStr = str.substring(0, start);

        //反转部分
        for (int i = end; i >= start; i--) {
            newStr += str.charAt(i);
        }

        //反转后一部分
        newStr += str.substring(end + 1);

        return newStr;
    }

方式三:

使用StringBuilder类,效率比String高。

    public String reverseStr2(String str, int start, int end){

        //反转前一部分
        StringBuilder builder = new StringBuilder(str.length());
        builder.append(str.substring(0,start));

        //反转部分
        for (int i = end; i >= start; i--) {
            builder.append(str.charAt(i));
        }

        //反转后一部分
        builder.append(str.substring(end + 1));

        return builder.toString();
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值