关于java:Java面试手册算法篇给定一个字符串输出逆序字符串

42次阅读

共计 1194 个字符,预计需要花费 3 分钟才能阅读完成。

在 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、数据库、数据结构与算法等。

正文完
 0