在Java中如何将数组字符右移?

在Java中如何将数组字符右移?,java,arrays,string,shift,Java,Arrays,String,Shift,这就是我所拥有的: class encoded { public static void main(String[] args) { String s1 = "hello"; char[] ch = s1.toCharArray(); for(int i=0;i<ch.length;i++) { char c = (char) (((i - 'a' + 1) % 26) + 'a');

这就是我所拥有的:

class encoded
{
    public static void main(String[] args)
    {
        String s1 = "hello";
        char[] ch = s1.toCharArray();
        for(int i=0;i<ch.length;i++)
        {
            char c = (char) (((i - 'a' + 1) % 26) + 'a');
            System.out.print(c);
        }
    }
}
类编码
{
公共静态void main(字符串[]args)
{
字符串s1=“你好”;
char[]ch=s1.toCharArray();

对于(int i=0;i您使用的是循环索引
i
,而不是循环中的
i
第个字符,这意味着您的代码的输出不依赖于输入
字符串
(当然,除了输出的长度,它与输入的长度相同)

改变

char c = (char) (((i - 'a' + 1) % 26) + 'a');


i-'a'+1
替换为
ch[i]-'a'+1

class encoded {

   public static void main(String[] args)
   {
     String s1 = "hello";
     char[] ch = s1.toCharArray();
     for(int i=0;i<ch.length;i++)
     { 
        char c = (char) (((ch[i] - 'a' + 1) % 26) + 'a');
        System.out.print(c);
     }
   }
}
类编码{
公共静态void main(字符串[]args)
{
字符串s1=“你好”;
char[]ch=s1.toCharArray();

对于(int i=0;它的变化太大了!请解释一下这两者之间发生了什么变化?想想你在做什么。变量
i
的用途是什么?要“移位”的字符存储在哪里?
class encoded {

   public static void main(String[] args)
   {
     String s1 = "hello";
     char[] ch = s1.toCharArray();
     for(int i=0;i<ch.length;i++)
     { 
        char c = (char) (((ch[i] - 'a' + 1) % 26) + 'a');
        System.out.print(c);
     }
   }
}