我正在编写一个程序来使用关键字加密短语。首先,将要求用户输入他们选择的关键字。然后会要求他们输入他们希望加密的短语。我的问题如下:
如果用户的关键字是:hello 他们的加密短语是:再见
必须重复关键字,以便加密的完整字词,“再见”#39;可以加密。例如:
hellohe goodbye
如何迭代字符串,以便只有' h'并且' e'再次迭代?
答案 0 :(得分:2)
String keyword = "hello";
String phrase = "goodbye";
for (int i = 0; i < phrase.length(); i++) {
char p = phrase.charAt(i);
char k = keyword.charAt(i % keyword.length());
System.out.println(p + " + " + k + " = " + (char)((p-'a' + k-'a')%26+'a'));
}
输出
g + h = n
o + e = s
o + l = z
d + l = o
b + o = p
y + h = f
e + e = i
答案 1 :(得分:2)
来自第三方Apache Commons Lang的StringUtils
课程具有完全符合您需求的rightPad方法
您可以像
一样使用它String myword = StringUtils.rightPad("hello", "goodbye".length(), "hello");
答案 2 :(得分:0)
当您为#34;再见&#34;加密每个字母时,请检查加密密钥的长度&#34;你好&#34;。
仅举例说明,如果加密文字仅用msg
添加key
:
for(int x=0; x<msg.length(); x++)
encryptedChar = msg.charAt(x) + key.charAt(x % key.length());