文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java字符串中指定部分反转的方式有哪些

2023-06-22 07:34

关注

这篇文章主要讲解了“Java字符串中指定部分反转的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java字符串中指定部分反转的方式有哪些”吧!

将“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

附实战例子

对字符串中指定的部分进行旋转,如str="mmabcdfeffnn",指定abcdfeff部分进行旋转,则得到字符串str="mmffefdcbann"。

其实现的思路,我是这样的:将源字符串分为三部分,头,待旋转,尾,其中这三部分都需要进行采取截取的操作,而对于待旋转的部分,这里采用了一个技巧,那就是借用了StringBuffer(String string)作为中介,并调用其中的reverse()方法进行旋转。最后得到的三部分:头,已旋转,尾,进行连接concat(String string)操作即可。

代码如下:

public class StringReverse {    public static void main(String[] args) {        String str="mmabcdefnn";        int start=2;        int end=7;                 System.out.println("原先字符串:          "+str);        String strNew=strReverse(str, start, end);        System.out.println("旋转了指定位置后的字符串: "+strNew);    }         public static String strReverse(String strArg,int start,int end){                 String strStart=strArg.substring(0,start);                 String strEnd=strArg.substring(end+1,strArg.length());         String strSub=strArg.substring(start, end+1);         StringBuffer sb=new StringBuffer(strSub);        strSub=sb.reverse().toString();                 return strStart.concat(strSub).concat(strEnd);    }}

感谢各位的阅读,以上就是“Java字符串中指定部分反转的方式有哪些”的内容了,经过本文的学习后,相信大家对Java字符串中指定部分反转的方式有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯