Я делаю шифр Цезаря для моего вступления в класс информатики, и я застрял. Я уже выяснил, как удовлетворить некоторые из необходимых элементов для проекта, например, пробелы, и я работал, когда ключ шифрования был установлен с фиксированным номером. Однако одним из требований является то, что алфавит обертывается, когда вы нажимаете «z», и что пользователь может ввести собственное значение ключа шифрования. Также ему необходимо шифровать и расшифровывать сообщения. Любые советы, которые кто-либо может дать мне о том, куда я иду, будут оценены по достоинству! Вот то, что я до сих пор: (я делал это в Eclipse)Создание Caesar Cipher в Java
import java.util.Scanner;
public class CaesarCipher {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("What is the message? (all lowercase)");
String plainText = keyboard.nextLine();
System.out.println("Please enter the encryption key: ");
int encryptionKey = keyboard.nextInt();
System.out.println("The encrypted text is: ");
int charPos = 0;
while (charPos < plainText.length()) {
char currChar = plainText.charAt(charPos);
int charAsNum = (int) currChar;
int cipherLetterAsNum = charAsNum + encryptionKey;
char cipherLetter = (char) cipherLetterAsNum;
if (currChar == 'x' || currChar == 'y' || currChar == 'z') {
currChar = plainText.charAt(charPos);
charAsNum = (int) currChar;
cipherLetterAsNum = charAsNum + encryptionKey - 26;
cipherLetter = (char) cipherLetterAsNum;
System.out.print(cipherLetter);
charPos = charPos + 1;
}
if (currChar == ' ') {
System.out.print(currChar);
} else {
System.out.print(cipherLetter);
}
charPos = charPos + 1;
}
}
}
a) Используйте входной символ, чтобы решить, нужно ли его изменять. b) Оператор '' ', чтобы решить, если вам нужно вычесть 26. Альтернативно вы можете использовать оператор'% ':' cOut = (cIn - 'a' + encryptionKey)% 26 + 'a'' – fabian