Декодер шифра Цезаря на Java – неожиданный результатJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Декодер шифра Цезаря на Java – неожиданный результат

Сообщение Anonymous »

Я пытаюсь написать декодер шифра Цезаря на Java, но получаю неожиданный результат (см. пример ниже).
Метод BetterDecrypt() принимает строку cipherText для декодирования, а также целое числоshiftKey, которое представляет собой количество позиций вверх или вниз по алфавиту, на которые должен быть сдвинут каждый символ строки. Если символа нет в строке ALPHABET = "abcdefghijklmnopqrstuvwxyz", то я хочу сохранить символ как есть, например "ab4c" следует декодировать "bc4d".
import java.io.*;
import java.util.*;

public class SimpleDecoder {
public static final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";

public static String BetterDecrypt(String cipherText, int shiftKey) {
cipherText = cipherText.toLowerCase();
String message = "";
for (int ii = 0; ii < cipherText.length(); ii++) {
char character = cipherText.charAt(ii);
if (ALPHABET.contains(Character.toString(character))) {
int charPosition = ALPHABET.indexOf(cipherText.charAt(ii));
int keyVal = (charPosition - shiftKey) % 26;
if (keyVal < 0) {
keyVal = ALPHABET.length() + keyVal;
char replaceVal = ALPHABET.charAt(keyVal);
message += replaceVal;
}
} else {
message += character;
}
}
return message;
}

public static void main(String[] args) {
System.out.println(BetterDecrypt("ab4c", -1));
// OUTPUT: 4 EXPECTED OUTPUT: bc4d
System.out.println(BetterDecrypt("ab4c", 1));
// OUTPUT: z4 EXPECTED OUTPUT: za4b
}
}


Подробнее здесь: https://stackoverflow.com/questions/780 ... ted-output
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как настроить сеттеры и Getters, чтобы пройти тестовые примеры. Проблема типа шифра Цезаря
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Как мне шифровать питон бинарным рисунком вдоль шифра Цезаря? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как мне шифровать питон бинарным рисунком вдоль шифра Цезаря? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous
  • Дешифруя с помощью шифра потока с использованием той же клавиши шифра потока
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Добавить шифр Цезаря в чат Java
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»