Java 练习(将字符串中指定部分进行反转)

Posted klvchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 练习(将字符串中指定部分进行反转)相关的知识,希望对你有一定的参考价值。

将一个字符串进行反转。将字符串中指定部分进行反转。比如"abcdefg"反转为"abfedcg"

package com.klvchen.exer;

import org.junit.Test;

public class StringDemo {
    /*
    将一个字符串进行反转。将字符串中指定部分进行反转。比如"abcdefg"反转为"abfedcg"

    方式一: 转化为 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;
    }

    //方式二: 使用 String 的拼接
    public String reverse1(String str, int startIndex, int endIndex){
        if (str != null){
            String reverseStr = str.substring(0, startIndex);

            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){
            StringBuffer builder = new StringBuffer(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;
    }

    @Test
    public void testReverse(){
        String str = "abcdefg";
//        String reverse = reverse(str, 2, 5);
//        String reverse = reverse1(str, 2, 5);
        String reverse = reverse2(str, 2, 5);
        System.out.println(reverse);
    }

}

以上是关于Java 练习(将字符串中指定部分进行反转)的主要内容,如果未能解决你的问题,请参考以下文章

实现字符串(或数组)反转并制定反转范围的两种方式

java练习 - 字符串反转

力扣92反转链表中指定长度的结点(中等)

Java 基础语法深度剖析 Java 中的数组含数组练习

bat批量移除文件名中指定字符

从 Java 代码中指定 DIP 尺寸的正确方法是啥?