Java - 陣列反轉/字串反轉

By sunwc 2023-03-19 Practice

陣列反轉

public static void main(String[] args) {

    String[] arr = new String[] {"PP","BB","MM","GG","JJ","DD","MM"};
    String temp;

    // 方式一、交換arr.length/2次
    for (int i = 0; i < arr.length/2; i++) {
        
        // 定義臨時變數交換
        temp = arr[i];
        arr[i] = arr[arr.length -i-1];
        arr[arr.length -i-1] = temp;
    }


    System.out.println(Arrays.toString(arr));

    // 方式二、arr[i], arr[j]於陣列兩端進行交換
    for (int i = 0, j = arr.length-1;i < j; i++, j--) {
        temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    System.out.println(Arrays.toString(arr));


    // s1中反轉bcd123,在輸出s1
    String s1 = "abcd1234";
    char[] chars = s1.toCharArray();

    for (int i = 1; i < (chars.length)/2; i++) {
        char temp = chars[i];
        chars[i] = chars[chars.length-1-i];
        chars[chars.length-1-i] = temp;
    }
    System.out.println(new String(chars)); // a321dcb4

}

輸出結果

[MM, DD, JJ, GG, MM, BB, PP]

字串反轉

public static void main(String[] args) {
    
    // 方式一、
    String str = "Hello World";
    char[] chars = str.toCharArray();
    
    for (int i = 0; i < chars.length/2; i++) {
        char temp = chars[i];
        chars[i] = chars[chars.length -i-1];
        chars[chars.length -i-1] = temp;
    }
    System.out.println(chars);

    // 方式二、
    StringBuilder sb1 = new StringBuilder(str);
    sb1.reverse();
    System.out.println(sb1);
}

輸出結果

dlroW olleH