Java 如果镜像沿阵列的一侧放置,如何在打印镜像时获取输入

Java 如果镜像沿阵列的一侧放置,如何在打印镜像时获取输入,java,multidimensional-array,Java,Multidimensional Array,给定二维阵列,如果镜像沿阵列的一侧放置,则打印其镜像 输入 输入的第一行将包含一个数字T=测试用例的数量。每个测试用例将包含两个正整数n和m(1 static void swap(String[][] array, int r1, int c1, int r2, int c2) { String temp = array[r1][c1]; array[r1][c1] = array[r2][c2]; array[r2][c2] = temp; } static void

给定二维阵列,如果镜像沿阵列的一侧放置,则打印其镜像

输入 输入的第一行将包含一个数字T=测试用例的数量。每个测试用例将包含两个正整数n和m(1

static void swap(String[][] array, int r1, int c1, int r2, int c2) {
    String temp = array[r1][c1];
    array[r1][c1] = array[r2][c2];
    array[r2][c2] = temp;
}

static void vertical(String[][] array) {
    int rows = array.length;
    int cols = array[0].length;
    for (int r = 0; r < rows; ++r)
        for (int c = 0; c < cols / 2; ++c)
            swap(array, r, c, r, cols - c - 1);
}

static void horizontal(String[][] array) {
    int rows = array.length;
    int cols = array[0].length;
    for (int c = 0; c < cols; ++c)
        for (int r = 0; r < rows / 2; ++r)
            swap(array, r, c, rows - r - 1, c);
}

public static void main(String[] args) {
    String s = ""
        + "2\n"
        + "3 3\n"
        + "abc\n"
        + "def\n"
        + "ghi\n"
        + "V\n"
        + "3 4\n"
        + "1234\n"
        + "5678\n"
        + "9876\n"
        + "H\n";
    try (Scanner scanner = new Scanner(s)) {
        int cases = scanner.nextInt();
        for (int i = 0; i < cases; ++i) {
            int rows = scanner.nextInt();
            int cols = scanner.nextInt();
            scanner.nextLine();
            String[][] array = new String[rows][cols];
            for (int r = 0; r < rows; ++r)
                array[r] = scanner.nextLine().split("");
            String operation = scanner.nextLine();
            if (operation.equals("H"))
                horizontal(array);
            else
                vertical(array);
            for (int r = 0; r < rows; ++r) {
                for (int c = 0; c < cols; ++c)
                    System.out.print(array[r][c]);
                System.out.println();
            }
        }

    }
}
静态无效交换(字符串[][]数组,int r1,int c1,int r2,int c2){
字符串温度=数组[r1][c1];
数组[r1][c1]=数组[r2][c2];
阵列[r2][c2]=温度;
}
静态无效垂直(字符串[][]数组){
int rows=array.length;
int cols=数组[0]。长度;
对于(int r=0;r
cba

fed

ihg

9876

5678

1234
    int arr[][]=new int[n][m];
          
     for(int j=0;j<n;j++)
          
      {   
             
        for(int k=0;k<m;k++)
             
         {
                 
            arr[j][k]=sc.nextInt(); 
                   //but if the input is in character how can i stop 
                 //I think I need to read the characters character by character and stop hen m==3(as per Sample Input)
                 //How can I do that in java
                 
         }
                 

       System.out.println();

     }      
        
    
static void swap(String[][] array, int r1, int c1, int r2, int c2) {
    String temp = array[r1][c1];
    array[r1][c1] = array[r2][c2];
    array[r2][c2] = temp;
}

static void vertical(String[][] array) {
    int rows = array.length;
    int cols = array[0].length;
    for (int r = 0; r < rows; ++r)
        for (int c = 0; c < cols / 2; ++c)
            swap(array, r, c, r, cols - c - 1);
}

static void horizontal(String[][] array) {
    int rows = array.length;
    int cols = array[0].length;
    for (int c = 0; c < cols; ++c)
        for (int r = 0; r < rows / 2; ++r)
            swap(array, r, c, rows - r - 1, c);
}

public static void main(String[] args) {
    String s = ""
        + "2\n"
        + "3 3\n"
        + "abc\n"
        + "def\n"
        + "ghi\n"
        + "V\n"
        + "3 4\n"
        + "1234\n"
        + "5678\n"
        + "9876\n"
        + "H\n";
    try (Scanner scanner = new Scanner(s)) {
        int cases = scanner.nextInt();
        for (int i = 0; i < cases; ++i) {
            int rows = scanner.nextInt();
            int cols = scanner.nextInt();
            scanner.nextLine();
            String[][] array = new String[rows][cols];
            for (int r = 0; r < rows; ++r)
                array[r] = scanner.nextLine().split("");
            String operation = scanner.nextLine();
            if (operation.equals("H"))
                horizontal(array);
            else
                vertical(array);
            for (int r = 0; r < rows; ++r) {
                for (int c = 0; c < cols; ++c)
                    System.out.print(array[r][c]);
                System.out.println();
            }
        }

    }
}