Advertisement
Guest User

Untitled

a guest
Oct 13th, 2015
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.82 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3.  
  4. public class Shifr
  5. {
  6. /*
  7.     char[][] tabl1 ={
  8.             {'ж','щ','н','ю','р','и','т','ь'},
  9.             {'ц','б','я','м','е','с','в','ы'},
  10.             {'п','ч','д','у','о','у','з','э'},
  11.             {'ф','г','ш','х','а','л','ъ','й'}
  12.             };
  13.     char[][] tabl2 ={
  14.             {'й','ч','г','я','т','ж','ь','м'},
  15.             {'о','з','ю','п','в','щ','ц','р'},
  16.             {'у','л','ъ','а','и','х','э','к'},
  17.             {'с','ш','д','б','ф','у','ы','н'}
  18.             };
  19.             */
  20.        char[][] tabl1 ={
  21.                {'ж','щ','н','ю','р'},
  22.                {'и','т','ь','ц','б'},    
  23.                {'я','м','е','.','с'},
  24.                {'в','ы','п','ч','ё'},
  25.                {':','д','у','о','к'},
  26.                {'з','э','ф','г','ш'},
  27.                {'ч','а',',','л','ъ'},
  28.                };
  29.        char[][] tabl2 ={
  30.                {'и','ч','г','я','т'},
  31.                {',','ж','ь','м','о'},    
  32.                {'з','ю','р','в','щ'},
  33.                {'ц',':','п','е','л'},
  34.                {'ъ','а','н','.','х'},
  35.                {'э','к','с','ш','д'},
  36.                {'б','ф','у','ы','ё'}
  37.                 };
  38.     final int N = 7;
  39.     final int M = 5;
  40.     public Shifr()
  41.     {
  42.         String str = input();
  43.         String sh = shifr(str);
  44.         String deSh = deShifr(sh);
  45.         System.out.println(sh+"\n"+deSh);
  46.     }
  47.     private String input()
  48.     {
  49.         String str;
  50.         Scanner sc = new Scanner(System.in);
  51.         System.out.println("Введите предложение для шифровки");
  52.         str = sc.nextLine();
  53.         str = str.replaceAll(" ", "");
  54.         System.out.println(str);
  55.         sc.close();
  56.         return str;
  57.     }
  58.     private String shifr(String str)
  59.     {
  60.         String shStr = "";
  61.         for(int n = 0; n < str.length(); n+=2)
  62.         {
  63.             int i1 = getI(tabl1,str.charAt(n));
  64.             int j1 = getJ(tabl1,str.charAt(n));
  65.            
  66.             int i2 = getI(tabl2,str.charAt(n+1));
  67.             int j2 = getJ(tabl2,str.charAt(n+1));
  68.             if(i1 == i2)
  69.             {
  70.                 shStr+=tabl2[i1][j1];
  71.                 shStr+=tabl1[i2][j2];
  72.             }
  73.             else
  74.             {
  75.                 shStr+=tabl2[i1][j2];
  76.                 shStr+=tabl1[i2][j1];
  77.             }
  78.         }
  79.         return shStr;
  80.     }
  81.     private String deShifr(String str)
  82.     {
  83.         String deStr = "";
  84.         for(int n = 0; n < str.length(); n+=2)
  85.         {
  86.             int i1 = getI(tabl2,str.charAt(n));
  87.             int j1 = getJ(tabl2,str.charAt(n));
  88.            
  89.             int i2 = getI(tabl1,str.charAt(n+1));
  90.             int j2 = getJ(tabl1,str.charAt(n+1));
  91.             if(i1 == i2)
  92.             {
  93.                 deStr+=tabl1[i1][j1];
  94.                 deStr+=tabl2[i2][j2];
  95.             }
  96.             else
  97.             {
  98.                 deStr+=tabl1[i1][j2];
  99.                 deStr+=tabl2[i2][j1];
  100.             }
  101.         }
  102.         return deStr;
  103.     }
  104.     private int getI(char [][] table, char s)
  105.     {
  106.         for(int i = 0; i < N; i++)
  107.             for(int j = 0; j < M; j++)
  108.             {
  109.                 if(table[i][j] == s)
  110.                     return i;
  111.             }
  112.         return -1;
  113.     }
  114.     private int getJ(char [][] table, char s)
  115.     {
  116.         for(int i = 0; i < N; i++)
  117.             for(int j = 0; j < M; j++)
  118.             {
  119.                 if(table[i][j] == s)
  120.                     return j;
  121.             }
  122.         return -1;
  123.     }
  124.  
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement