Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.pr3.bsbo_08_19.TimofeyKondakov.task12;
- import java.util.Scanner;
- public class Task12 {
- public static final String ALPH_LOWER = "abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя";
- public static final String ALPH_UPPER = "ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
- public void Ex12() {
- // Реализовать для фрагмента текста шифрование Цезаря (каждый
- // символ в тексте заменить символом, находящимся на некотором
- // постоянном числе позиций левее или правее него в алфавите,
- // например, в слове работа сдвиг на 1 даст “сбвпуб”).
- Scanner in = new Scanner(System.in);
- System.out.println("Enter text: ");
- String str = in.nextLine();
- System.out.println("Enter shift: ");
- int offset = Integer.valueOf(in.nextLine());
- var buffer = new StringBuilder();
- for (var ch : str.toCharArray())
- {
- var alph = Character.isUpperCase(ch) ? ALPH_UPPER : ALPH_LOWER;
- var alphLength = alph.length();
- var indexOfChar = alph.indexOf(ch);
- if (indexOfChar >= 0)
- {
- var newCharIndex = indexOfChar + offset;
- if (newCharIndex < 0)
- {
- newCharIndex = alphLength + newCharIndex;
- }
- while (newCharIndex >= alphLength)
- newCharIndex -= alphLength;
- buffer.append(alph.charAt(newCharIndex));
- }
- else
- {
- buffer.append(ch);
- }
- }
- System.out.println(buffer.toString());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement