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()); } }