Модуль Цезарь Шифр ​​Java - PullRequest
       10

Модуль Цезарь Шифр ​​Java

0 голосов
/ 16 сентября 2018

Я пытался создать модуль cesher cesher в java, но по какой-то причине код, похоже, не работает.Если я возьму операторы if, чтобы проверить, был ли их номер ASCII плюс ключ буквенным, он ничего не выводит, в противном случае это просто странные буквы.

Я предполагаю, что между всеми преобразованиями, между символами и целыми числами,где-то между данными теряется.

public static String caesarCipher(String text, int key) {
    char[] charText = new char[text.length()];
    for (int i = 0; i < text.length(); i++) charText[i] = text.charAt(i);

    for (int i = 0; i < charText.length; i++) {
        if (Character.isUpperCase(charText[i])) {
            charText[i] = (char) (Character.getNumericValue(charText[i]) + key);
            if (Character.getNumericValue(charText[i]) > 90)
                charText[i] = (char) (Character.getNumericValue(charText[i]) - 26);
            if (Character.getNumericValue(charText[i]) < 65)
                charText[i] = (char) (Character.getNumericValue(charText[i]) + 26);
        }
        if (Character.isLowerCase(charText[i])) {
            charText[i] = (char) (Character.getNumericValue(charText[i]) + key);
            if (Character.getNumericValue(charText[i]) > 122)
                charText[i] = (char) (Character.getNumericValue(charText[i]) - 26);
            if (Character.getNumericValue(charText[i]) < 97)
                charText[i] = (char) (Character.getNumericValue(charText[i]) + 26);
        }
    }

    String finalText = new String(charText);
    return finalText;
}

Итак, сначала я копирую объект String в массив символов.Затем я проверяю один за другим элементы массива char, является ли он прописными или строчными.В обоих случаях элемент преобразуется в его числовое значение, значение ключа добавляется к нему, а затем преобразуется обратно в элемент char.В случае, если числовое значение плюс ключ больше или меньше, чем цифры, которые алфавитные буквы представляют в таблице ASCII, значение снова преобразуется обратно в его числовое представление и 26 добавляется или вычитается.В конце массив char передается в объект String и возвращается.

...