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更好做.

猜你喜欢

转载自blog.csdn.net/weixin_42401258/article/details/81779305
今日推荐