Advertisement
IrinaIgnatova

Matrix Shuffling- swap elements

Oct 30th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.71 KB | None | 0 0
  1. package com.company;
  2.  
  3.  
  4. import java.io.IOException;
  5.  
  6. import java.util.*;
  7.  
  8.  
  9. public class Main {
  10.  
  11.  
  12.     public static void main(String[] args) {
  13.         Scanner scanner = new Scanner(System.in);
  14.  
  15.         String[] dimensions = scanner.nextLine().split(" ");
  16.         int rows = Integer.parseInt(dimensions[0]);
  17.         int cols = Integer.parseInt(dimensions[1]);
  18.  
  19.  
  20.         String[][] matrix = new String[rows][cols];
  21.  
  22.         for (int i = 0; i < matrix.length; i++) {
  23.             matrix[i] = scanner.nextLine().split(" ");
  24.         }
  25.  
  26.         String input = scanner.nextLine();
  27.  
  28.  
  29.         String[] tokens = input.split(" ");
  30.         int indexRow = 0;
  31.         int indexCol = 0;
  32.         int indexRowSwap = 0;
  33.         int indexColSwap = 0;
  34.  
  35.  
  36.         while (!input.equals("END")) {
  37.             tokens = input.split(" ");//да не забравям че четем нов input
  38.  
  39.             if (tokens.length == 5) {//тук проверявам дали input е ок за да нямам indexOutOfBound при tokens[4]
  40.                 indexRow = Integer.parseInt(tokens[1]);
  41.                 indexCol = Integer.parseInt(tokens[2]);
  42.                 indexRowSwap = Integer.parseInt(tokens[3]);
  43.                 indexColSwap = Integer.parseInt(tokens[4]);
  44.             }
  45.  
  46.  
  47.             if (tokens[0].equals("swap")) {//проверка дали започва със swap
  48.  
  49. //                        //правим проверка дали индексите са в обхвата на матрицата:
  50.  
  51.                 if (indexRow >= 0 && indexRow < matrix.length && indexCol >= 0 && indexCol < cols
  52.                         && indexRowSwap >= 0 && indexRowSwap < matrix.length && indexColSwap >= 0 && indexColSwap < cols) {
  53.  
  54.                     String temp = matrix[indexRow][indexCol];   //елемента който взимаме
  55.                     matrix[indexRow][indexCol] = matrix[indexRowSwap][indexColSwap];  //елемента с който сменяме
  56.                     matrix[indexRowSwap][indexColSwap] = temp;  //презаписваме
  57.  
  58. //              принтираме матрицата на всяка стъпка
  59.                     for (int row = 0; row < matrix.length; row++) {
  60.                         for (int col = 0; col < matrix[row].length; col++) {
  61.                             System.out.print(matrix[row][col] + " ");
  62.                         }
  63.                         System.out.println();
  64.  
  65.                     }
  66.  
  67.                 } else {
  68.                     System.out.println("Invalid input!");
  69.                 }
  70.  
  71.             } else {
  72.                 System.out.println("Invalid input!");
  73.             }
  74.             input = scanner.nextLine();
  75.         }
  76.  
  77.  
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement