Advertisement
BERKYT

LABA 3 KSIPO t12

Nov 17th, 2020 (edited)
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.92 KB | None | 0 0
  1. package com.pr3.bsbo_08_19.TimofeyKondakov.task12;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Task12 {
  6.     public static final String ALPH_LOWER = "abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя";
  7.     public static final String ALPH_UPPER = "ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
  8.  
  9.     public void Ex12() {
  10. //        Реализовать для фрагмента текста шифрование Цезаря (каждый
  11. //        символ в тексте заменить символом, находящимся на некотором
  12. //        постоянном числе позиций левее или правее него в алфавите,
  13. //        например, в слове работа сдвиг на 1 даст “сбвпуб”).
  14.  
  15.         Scanner in = new Scanner(System.in);
  16.  
  17.         System.out.println("Enter text: ");
  18.  
  19.         String str = in.nextLine();
  20.  
  21.         System.out.println("Enter shift: ");
  22.         int offset = Integer.valueOf(in.nextLine());
  23.  
  24.         var buffer = new StringBuilder();
  25.  
  26.         for (var ch : str.toCharArray())
  27.         {
  28.             var alph = Character.isUpperCase(ch) ? ALPH_UPPER : ALPH_LOWER;
  29.             var alphLength = alph.length();
  30.             var indexOfChar = alph.indexOf(ch);
  31.  
  32.             if (indexOfChar >= 0)
  33.             {
  34.                 var newCharIndex = indexOfChar + offset;
  35.  
  36.                 if (newCharIndex < 0)
  37.                 {
  38.                     newCharIndex = alphLength + newCharIndex;
  39.                 }
  40.  
  41.                 while (newCharIndex >= alphLength)
  42.                     newCharIndex -= alphLength;
  43.  
  44.                 buffer.append(alph.charAt(newCharIndex));
  45.             }
  46.             else
  47.             {
  48.                 buffer.append(ch);
  49.             }
  50.         }
  51.         System.out.println(buffer.toString());
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement