Java 如何循环回到字符串的开头?超级杀戮,加密-解密

Java 如何循环回到字符串的开头?超级杀戮,加密-解密,java,string,loops,encryption,Java,String,Loops,Encryption,我在做Hyperskill加密-解密项目,下面的描述,我遇到了一个问题。 例如,如果我尝试对字母=a key=1进行加密,结果将是:b。 但如果字母=z,键=1,则该方法将循环回字母表的开头,并且输出应为a。 问题是-如果必须这样做,我如何使我的方法循环回到开始 项目说明: 编写一个程序,读取英文消息和整数 (键)从标准输入,并按指定的顺序移动每个字母 按字母表中的顺序编号。如果你到达终点 在字母表中,从开头开始(a跟在z后面) 英文字母表如下:abcdefghijklmnopqrstuvwxy

我在做Hyperskill加密-解密项目,下面的描述,我遇到了一个问题。 例如,如果我尝试对字母=a key=1进行加密,结果将是:b。 但如果字母=z,键=1,则该方法将循环回字母表的开头,并且输出应为a。 问题是-如果必须这样做,我如何使我的方法循环回到开始

项目说明:

编写一个程序,读取英文消息和整数 (键)从标准输入,并按指定的顺序移动每个字母 按字母表中的顺序编号。如果你到达终点 在字母表中,从开头开始(a跟在z后面)

英文字母表如下:abcdefghijklmnopqrstuvwxyz

程序不应修改非字母字符。关键是 假设是指如果一个人知道钥匙的价值,他或 她将能够解密文本,如果他或她不知道, 他或她将无法解密文本。它就像一把真正的钥匙 可以打开对消息文本的访问

publicstaticvoidencrypt(字符串输入,int键){
字符串输出=”;
字符串字母表=“abcdefghijklmnopqrstuvxyz”;
对于(int i=0;i
您可以使用模运算符
%
将大索引“环绕”到字符串长度:

String decryptedCharacter = Character.toString(alphabet.charAt((j + key) % alphabet.length()));
(注意:在原始代码中,您是将
键添加到
字符中,而不是添加到索引中。)

此外,您还可以使用
contains
检查字母表中是否有要处理的字符,例如标点符号:

if (! alphabet.contains(inputCharacter)) {
     output += inputCharacter;
}

您可以使用模运算符
%
将大索引“环绕”到字符串的长度:

String decryptedCharacter = Character.toString(alphabet.charAt((j + key) % alphabet.length()));
(注意:在原始代码中,您是将
键添加到
字符中,而不是添加到索引中。)

此外,您还可以使用
contains
检查字母表中是否有要处理的字符,例如标点符号:

if (! alphabet.contains(inputCharacter)) {
     output += inputCharacter;
}