移位密码赢得';t shift数字将其更改为大写字母,然后不';我不能把它们换回来。JAVA

移位密码赢得';t shift数字将其更改为大写字母,然后不';我不能把它们换回来。JAVA,java,arrays,encryption,Java,Arrays,Encryption,我有一个字符串需要加密。我正在使用移位密码。我从“代码中的梦想”(post#6)中获得了这些方法。此移位密码不会加密数字,但会在加密过程中将数字更改为大写字母。但在解密过程中,将它们改为小写数字5,小于大写数字。我不确定如何改变这两种方法,使他们能够正确处理数字 Encrypt方法,该方法获取字符串内容(数组的内容)并将其移位5位,然后将其传递回保存方法,然后将内容保存到txt文件 public String encodeWord(String content) { Stri

我有一个字符串需要加密。我正在使用移位密码。我从“代码中的梦想”(post#6)中获得了这些方法。此移位密码不会加密数字,但会在加密过程中将数字更改为大写字母。但在解密过程中,将它们改为小写数字5,小于大写数字。我不确定如何改变这两种方法,使他们能够正确处理数字

Encrypt方法,该方法获取字符串内容(数组的内容)并将其移位5位,然后将其传递回保存方法,然后将内容保存到txt文件

    public String encodeWord(String content) {
      StringBuffer r = new StringBuffer();
      for (int i = 0; i < content.length(); i++) {
        char c = content.charAt(i);                 
        c = (char)('a' + (c -'a'+ 5) % 26);     
        r.append(c);                        
      }
      return r.toString();                   
    } // encode()
公共字符串编码字(字符串内容){
StringBuffer r=新的StringBuffer();
对于(int i=0;i
Decrypt方法,它获取前面提到的txt文件,在加载函数期间,在将其加载回数组之前,字符串的每一行都被传递到此处进行解密,然后传递回加载函数

public static String decodeWord(String str) {
            StringBuffer r = new StringBuffer();
            for (int i = 0; i < str.length(); i++) {
               char c = str.charAt(i);
               c = (char)('a' + (c - 'a' + 21) % 26);
              r.append(c);                     
         }
            System.out.println(str);
            return r.toString();                   
          }
公共静态字符串解码字(字符串str){
StringBuffer r=新的StringBuffer();
对于(int i=0;i
您需要类似

if (is_digit(c))
    c = (char)('0' + (c - '0' + 5) % 10);
else if (is_letter(c))
    c = (char)('a' + (c - 'a' + 5) % 26);

什么是“数字”?这在java中是一个实际的东西还是一个占位符?它只是一个占位符,如果c是0-9,它应该返回true,否则返回false。虽然如果您使用Character类,我很确定它有一个isDigit()方法。谢谢,这很有效!我没有使用character类,所以我不得不对它进行调整,并将其更改为“if(character.isDigit(content.charAt(I))”,但这是一个完美的解决方案!“a”+(c-“a”+5)与c+5+“a”-“a”不一样吗?是的,但是操作顺序在这里很重要<代码>(c-'a'+5)
在添加到
'a'