在Java中重复字符串以达到一定的长度

时间:2015-09-24 20:14:30

标签: java string loops encryption iteration

我正在编写一个程序来使用关键字加密短语。首先,将要求用户输入他们选择的关键字。然后会要求他们输入他们希望加密的短语。我的问题如下:

如果用户的关键字是:hello 他们的加密短语是:再见

必须重复关键字,以便加密的完整字词,“再见”#39;可以加密。例如:

hellohe
goodbye

如何迭代字符串,以便只有' h'并且' e'再次迭代?

3 个答案:

答案 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 LangStringUtils课程具有完全符合您需求的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());