Использование строкового буфера для цезаря расшифровки Java - PullRequest
0 голосов
/ 13 октября 2019

Попытка использовать строковый буфер для дешифрования основного сдвига Цезаря, 1-й части кода, которая сдвигает знаки

public static String encrypt(String s) {
    String ret = ""; //empty string to fill
    for (int i = 0; i != s.length(); ++i) {
        ret = ret + (char) (s.charAt(i) + 3); //filling the string with characters shifted by 3
    }
    return ret;
}  

2-й части кода, которая должна расшифровывать ret и должна использовать stringbuffer

public static String decrypt(String ret) {
String decy = ""; //new string for output
StringBuffer dec = new StringBuffer();
dec.append(ret); //converting ret into stringbuffer
for (int j=0; j!=dec.length(); ++j) { 
    decy= (decy + (dec.charAt(j)-3)); //adding the back shifted parts of stringbuffer filled with ret back to decy
}
return decy;}

Ожидаемый вывод - это слово, которое дается из другой части кода, но я получаю 889711810111453, что заставляет меня предположить, что моя проблема лежит где-то в цикле for / преобразовании символов из strinbuffer обратно в строку. Совершенно новичок в кодировании, извините, если проблема тривиальна

...