Java反轉數組元素

實現數組逆序打印


/**
 * Reverse Array
 * 將數組中第一個元素和最後一個元素交換位置
 * 將第二個元素和倒數第二個交換位置
 * 以此類推,中間的元素和自己交換,等價於沒動.
 */
public class Assign04 {
    public static void main(String[] args) {
        int[] arr={1,2,3,4,5,6};
        int[] accArr=ReverseArray(arr);
        for (int i : accArr) {
            System.out.println(i);
        }
    }

    public static int[] ReverseArray(int[] arr){
        for (int i = 0; i < arr.length/2; i++) {//這裏除以二是防止再次判斷.如果不除2,還是會將換過來的元素再換回去
            if (arr[i]<arr[arr.length-i-1]) {//
//-i-1,第一個和最後一個交換就是arr[0]和arr[6-0-1]
//第二個和倒數第二個交換就是arr[1]和arr[6-1-1];以此類推
                int temp=arr[arr.length-i-1];
                arr[arr.length-i-1]=arr[i];
                arr[i]=temp;
            }
        }
        return arr;
    }
}

如果想實現逆轉字符串打印也是同樣的道理

import java.util.Scanner;

public class Practice01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入一個字符串,程序將逆轉字符串並輸出:");
        String input = sc.next();
        String recieveString=reverseString(input);
        System.out.println(recieveString);
//        System.out.println(recieveString.substring(1));
    }

    /**
     * 反轉鍵盤錄入的字符串。
     * @param s
     * @return
     */
    public static String reverseString(String s){
        char[] c = s.toCharArray();
        for (int i = 0; i < c.length/2; i++) {
                char temp = c[c.length-i-1];
                c[c.length-i-1]=c[i];
                c[i]=temp;
        }
        s= s.valueOf(c);
        return s;
    }
}

字符串比字符好辦多了.可以直接倒着打印一遍再輸出就行了

public static String reverseString2(String s) {
        char[] chars = s.toCharArray();
        String ss = "";
        for (int i = chars.length - 1; i > -1; i--) {
            char c = chars[i];
            ss += c;
        }
//        System.out.println(Arrays.toString(chars));

        return ss;
    }

學了集合的話,更容易用ArrayList更好做.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章