栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java实现字符串中指定部分反转

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java实现字符串中指定部分反转

序言:我是努力的小鸣人,这是我的第一篇博客,在自己Java学习过程中的一些见解,大家一起加油学习吧!

目录

方式一:把字符串转化为char[]

方式二:使用String的拼接

方式三:使用StringBuffer/StringBuilder替换String


将“asdfghj”反转为“ashgfdj”

方式一:把字符串转化为char[]

调用String类中toCharArray()方法把字符串转化为字符,而后开始时索引和结束时索引利用for()循环反转指定字符,结束

public class StringDemo {

    public static void main(String[] args) {
        StringDemo stringDemo = new StringDemo();
        String str1 = "asdfghj";
        String str2 = stringDemo.reverse1(str1,2,5);
        System.out.println("反转后为:" + str2);
    }

    public String reverse1(String str, int start, int end) {
        if (str != null) {
            char[] charArray = str.toCharArray();
            for (int i = start, j = end; i < j; i++, j--) {
                char temp = charArray[i];
                charArray[i] = charArray[j];
                charArray[j] = temp;
            }
            return new String(charArray);
        }
        return null;
    }
}

运行结果:

反转后为:ashgfdj

方式二:使用String的拼接

将字符串分割为三部分:需反转字符串前,需反转字符串,需反转字符串之后,调用substring()方法截取字符串,循环倒序遍历需反转字符串部分,后拼接这三部分

    public static void main(String[] args) {
        StringDemo stringDemo = new StringDemo();
        String str1 = "asdfghj";
        String str2 = stringDemo.reverse1(str1,2,5);
        System.out.println("反转后为:" + str2);
    }

    public String reverse1(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;
    }

运行结果:

反转后为:ashgfdj

方式三:使用StringBuffer/StringBuilder替换String

相较于方式二的改进,用Stringbuilder中append()方法代替方式二中“+=”,效率更高

public class StringDemo {

    public static void main(String[] args) {
        StringDemo stringDemo = new StringDemo();
        String str1 = "asdfghj";
        String str2 = stringDemo.reverse1(str1,2,5);
        System.out.println("反转后为:" + str2);
    }

    public String reverse1(String str, int start, int end) {
        StringBuffer s = new StringBuffer(str.length());
        // 第一部分
        s.append(str.substring(0, start));
        // 第二部分
        for (int i = end; i >= start; i--) {
            s.append(str.charAt(i));
        }
        // 第三部分
        s.append(str.substring(end + 1));
        return s.toString();

    }

}

运行结果:

反转后为:ashgfdj

注:在方式三中,仅是字符串反转操作,不需要考虑线程安全问题,所以优先选择StringBuilder

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693665.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号