如何解码以下的crypt

时间:2017-10-02 07:42:47

标签: java encryption decode

我是编程和java的新手。我还在学习java。我正在解决一个隐藏(在java中),它提供给我以下约束:

  
    

输入:     wrien

         

输出:erwin

         

如何对密码进行编码:从原始单词中删除单词的中间字母,并将其附加到单词的末尾,直到没有字母为止。如果单词长度均匀,还有一个条件 ,然后选择中位数左侧字母

         

在上述情况下,' w' 是字符串的中位数,因此它会附加在开始,依此类推。

  

我以某种方式设法对String进行编码,即将 erwin 转换为 wrien ,但我无法对其进行解码。我尝试了各种各样的方法,但他们一脉相承。 以下是我的尝试:[根据@Talex的回答]

   String temp = "";
    int i = 0;
    if(text.length() % 2 != 0){
    while(i < text.length()){
        if((i + 1) % 2 == 0)
            temp = text.charAt(i) + temp;
        else
            temp = temp + text.charAt(i);

        i++;
    }
    System.out.println(temp);
    }
    else{//Here it is failing }

请帮助我理解解码隐藏(我是编程的初学者,如果问题不符合标准,我会道歉,但我完全坚持这个问题)。

谢谢

1 个答案:

答案 0 :(得分:4)

获取临时变量并使用空字符串初始化它。

每封信:

  • 甚至字母前置于临时字符串。
  • 奇数字附加到临时字符串。

代码段:

String tmp = "";
bool flag = true;
for(char c : input.toCharArray()) {
   if(flag) {
      tmp = c + tmp;
   } else {
      tmp = tmp + c;
   }
   flag = !flag;
}