计算凯撒密码的明文和密文之间的距离



我有一个这样的文本文件:

GASDGHSDH BVNYBCNYC
HDFS UQSF
CXVN KFDV
SHDF APLN
HDSFHS OKZMOZ
SAH YGN
DSHF HWLJ
REEW TGGY
SGDFH AOLNP
DHSF EITG
GSDHASD IUFJCUF
DHFSDF KOMZKM
DSFH SHUW

而且我不知道解密密钥。例如:HDFS UQSF键 == 13

因为 U - H == 13

还行。我写代码:

public static int codeJC(String first, String twice){
    first = first.toLowerCase();
    twice = twice.toLowerCase();
    char a = first.charAt(0);
    char b = twice.charAt(0);

    int r = 0;
    if((a-b) >0){
        r = a-b;
    }else{
        r = b-a;
    }
    return r;

}

但是,如果:

System.out.println(codeJC("Z", "A")); //this return 25 !?!?!?!?
System.out.println(codeJC("C", "F")); //this return good value

为什么当

if ((a - b) > 0) {
    r = 26 - (a - b);
} else {
    r = b - a;
}

最新更新