zoukankan      html  css  js  c++  java
  • 算法题:将一个字符串进行反转:将字符串中指定部分进行反转。比如“abcdefg”反转为”abfedcg”

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

    方式一:转换为char[]

    public String reverse(String str,int startIndex,int endIndex){
    
            if(str != null){
                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;
        }
    
    
    
    @Test//测试代码
        public void testReverse(){
            String str = "abcdefg";
            String reverse = reverse2(str, 2, 5);
            System.out.println(reverse);
        }
    
    
    

    
    
    
    //方式二:使用String的拼接
    
    
    public String reverse1(String str,int startIndex,int endIndex){
            if(str != null){
                //第1部分
                String reverseStr = str.substring(0,startIndex);
                //第2部分
                for(int i = endIndex;i >= startIndex;i--){
                    reverseStr += str.charAt(i);
                }
                //第3部分
                reverseStr += str.substring(endIndex + 1);
    
                return reverseStr;
    
            }
            return null;
        }
    
    
    //方式三:使用StringBuffer/StringBuilder替换String
    
    
    public String reverse2(String str,int startIndex,int endIndex){
            if(str != null){
                StringBuilder builder = new StringBuilder(str.length());
    
                //第1部分
                builder.append(str.substring(0,startIndex));
                //第2部分
                for(int i = endIndex;i >= startIndex;i--){
    
                    builder.append(str.charAt(i));
                }
                //第3部分
                builder.append(str.substring(endIndex + 1));
    
                return builder.toString();
            }
            return null;
    
        }
    
    
    package com.atguigu.exer;

    import org.junit.Test;

    /**
    * @author CH
    * @create 2021 上午 10:07
    */
    public class StringDemo {

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

    方式一:转换为char[]
    */
    public String reverse(String str,int startIndex,int endIndex){

    if(str != null){
    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){
    //第1部分
    String reverseStr = str.substring(0,startIndex);
    //第2部分
    for(int i = endIndex;i >= startIndex;i--){
    reverseStr += str.charAt(i);
    }
    //第3部分
    reverseStr += str.substring(endIndex + 1);

    return reverseStr;

    }
    return null;
    }
    //方式三:使用StringBuffer/StringBuilder替换String
    public String reverse2(String str,int startIndex,int endIndex){
    if(str != null){
    StringBuilder builder = new StringBuilder(str.length());

    //第1部分
    builder.append(str.substring(0,startIndex));
    //第2部分
    for(int i = endIndex;i >= startIndex;i--){

    builder.append(str.charAt(i));
    }
    //第3部分
    builder.append(str.substring(endIndex + 1));

    return builder.toString();
    }
    return null;

    }

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

    }
    
    

    StringBuffer 类不同于String ,其对象必须使用构造器生成。有 三 个 构造 器 :
    StringBuffer() :初始为 容量为16 的字符串缓冲区
    StringBuffer(int size) :构造 指定容量的字符串缓冲区
    StringBuffer(String str) :将 内容初始化为指定字符串内容

    StringBuffer 类的常用方法
    StringBuffer append(xxx):提供了很多的append()方法,用于进行字符串拼接
    StringBuffer delete(int start,int end):删除指定位置的内容
    StringBuffer replace(int start, int end, String str):把[start,end)位置替换为str
    StringBuffer insert(int offset, xxx):在指定位置插入xxx
    StringBuffer reverse() :把当前字符序列逆转
     当append和insert时,如果原来value数组长度不够,可扩容。
     如上这些方法支持方法链操作。

     
    不积跬步,无以至千里;不积小流,无以成江海。
  • 相关阅读:
    字符串匹配算法
    C#中窗体的位置和大小
    关于C#值类型,引用类型,值传递,引用传递(转载)
    ArcMap中设置.mxd相对路径
    统计学上的知识
    .NET 数学实现资料(ZZ)
    牛腩新闻系统学习笔记06讲 编写SQLHelper
    DropDownList 控件不能触发SelectedIndexChanged 事件的另一个原因
    牛腩新闻视频 03讲 数据库设计的心得 如何建立外键sql2008的数据库关系图功能
    使用sql server management studio 2008 连接数据库,无法查看数据库,提示 无法为该请求检索数据 错误916
  • 原文地址:https://www.cnblogs.com/CCTVCHCH/p/14665239.html
Copyright © 2011-2022 走看看