将字符串中指定部分进行反转的3种方法

文章目录

  • 方法一:将字符串转换为数组,利用temp进行转换
  • 方法二:利用字符串拼接的方法
  • 方法三:使用StringBuffer或者StringBuilder的append方法

方法一:将字符串转换为数组,利用temp进行转换

 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; y > x;y--,x++){
     
               char temp = arr[x];
               arr[x] = arr[y];
               arr[y] = temp;
           }
           return  String.valueOf(arr);

        }return null;
    }

@Test

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

方法二:利用字符串拼接的方法

 public String reverse1(String str,int startIndex,int endIndex){
     
        if(str.length() != 0 && str != null){
     
            //拼接部分1:开头
            String tagret = str.substring(0,startIndex);

            //拼接部分2:翻转
            for (int i = endIndex; i >= startIndex ; i--) {
     
                tagret += str.charAt(i);
            }

            //第三部分:结尾
            return tagret += str.substring(endIndex + 1);

        }return null;
    }

@Test

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

方法三:使用StringBuffer或者StringBuilder的append方法

 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();
        }else {
     
            return null;
        }
    }

@Test

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

你可能感兴趣的:(面试题总结,字符串,java)