【Java面试手册-算法篇】给定一个字符串,输出逆序字符串

在Java中,如果想要逆序输出字符串,通常可以采样首尾双向循环、单向循环或者StringBuffer、StringBuilder来实现,下面分别给出相应的示例代码。

示例代码1 — 首尾双向循环

    private static String reverse(String str) {
        if (str == null) {
            return null;
        }

        char[] chars = str.toCharArray();
        for (int start = 0, end = chars.length - 1; start <= end; start++, end--) {
            char tempChar = chars[start];
            chars[start] = chars[end];
            chars[end] = tempChar;
        }

        return String.valueOf(chars);
    }

上面的代码采用首尾双向循环的思路,通过临时变量的方式,实现两个字符的交换。除了首尾双向遍历方式外,也可以采用单向遍历的方式实现字符串的反转。

示例代码2 — 单向循环

    private static String reverse(String str) {
        if (str == null) {
            return null;
        }

        int length = str.length();
        char[] chars = new char[length];
        for (int i = 0; i < length; i++) {
            chars[i] = str.charAt(length - i - 1);
        }
        
        return String.valueOf(chars);
    }

除了使用循环方式外,也可以借助于 StringBuilder 或 StringBuffer 的 reverse() 方法实现字符串的反转。

示例代码3 — StringBuilder 或 StringBuffer

    private static String reverse(String str) {
        if (str == null) {
            return null;
        }
        
        return new StringBuilder(str).reverse().toString();
    }

    private static String reverse(String str) {
        if (str == null) {
            return null;
        }

        return new StringBuffer(str).reverse().toString();
    }

测试验证

    public static void main(String[] args) {
        System.out.println(reverse("abcd"));
        System.out.println(reverse("A1B2C3"));
    }

输出的结果如下:

dcba
3C2B1A

更多有关Java面试相关的知识点可以关注【Java面试手册】小程序,涉及Java基础、多线程、JVM、Spring、Spring Boot、Spring Cloud、Mybatis、Redis、数据库、数据结构与算法等。

Java面试手册小程序

posted @   然笑后端  阅读(655)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示