String-String-Reverse

Zeichenfolge umkehren

1. Zusammenfügen eines einzelnen Zeichens in umgekehrter Reihenfolge (charAt()/toCharArray())
2. StringBuffers eigene umgekehrte Methode (reverse())
3. Rekursion

Empfohlen wird die zweite Methode, die schnell ist. Der erste ist leicht zu verstehen

Der erste konvertiert lediglich die Zeichenfolge in ein Array, und der spezifische Vorgang nach der Konvertierung ist von Person zu Person unterschiedlich.

    public static void main(String[] args){
        String str = "abc123";
        System.out.println(reverse(str));
        System.out.println(reverse2(str));
        System.out.println(reverse3(str));
        System.out.println(reverse4(str));
        System.out.println(reverse5(str));
    }

    // 字符串反转,StringBuffer自带的方法
    public static String reverse(String str){
        return new StringBuffer(str).reverse().toString();
    }

    // 字符串反转,toCharArray()方法
    public static String reverse2(String str){
        String reverse = "";

        char[] chars = str.toCharArray();
        for(int i = str.length()-1; i >= 0; i--){
            reverse = reverse + chars[i];
        }
        return reverse;
    }

    // 字符串反转,CharAt()方法
    public static String reverse3(String str){
        String reverse = "";

        for(int i = str.length()-1; i >= 0; i--){
            reverse = reverse + str.charAt(i);
        }

        return reverse;
    }

    // 直接调换每个字符串位置
    public static String reverse4(String str) {
        char[] chars = str.toCharArray();

        for (int i = 0; i < chars.length / 2; i++) {
            char temp = chars[i];
            chars[i] = chars[chars.length - 1 -i];
            chars[chars.length - 1 - i] = temp;
        }

        return String.valueOf(chars);
    }

    // 递归
    public static String reverse5(String s){
        int length = s.length();

        if(length<=1){
            return s;
        }
        String left  = s.substring(0,length/2);
        String right = s.substring(length/2 ,length);
        String afterReverse = reverse4(right)+reverse4(left);

        return afterReverse;
    }

Guess you like

Origin blog.csdn.net/weixin_44440669/article/details/121117265