由k移位数组

Lun*_*nar 0 java

我正在研究一个小的java程序,它非常基本,我的一个函数用给定的键移动字母表.我有它的工作,但它的方向错误,我怎么能让它转向另一个方向?

public static char[] ourAlphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};


    public  char[] shiftAlphabet(int key) {

            int length = ourAlphabet.length;

            char[] result = new char[length];

            for (int i=0; i < length; i++)
            {
                result[(i+key+26)%length] = ourAlphabet[i];
            }

            return result;
    }
Run Code Online (Sandbox Code Playgroud)

我猜它很简单,但它让我很困惑!

例如; 用钥匙19产生; hijklmnopqrstuvwxyzabcdefg

什么时候应该生产; TUVWXYZABCDEFGHIJKLMNOPQRS

dog*_*ane 8

改成:

result[i] = ourAlphabet[(i+key)%length];
Run Code Online (Sandbox Code Playgroud)