首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Vigenere密码

Java Vigenere密码
EN

Stack Overflow用户
提问于 2018-11-29 15:16:23
回答 2查看 633关注 0票数 1

我试图破译Vigenere_Cipher,当我输入BEXR TKGKTRQFARI时,输出是JAVAPROGRAMMING,但是我想像JAVA PROGRAMMING那样放置空格。

我的密码

代码语言:javascript
复制
public static String VigenereDecipher(String text) {
    String keyword = "SECRET";
    String decipheredText = "";
    text = text.toUpperCase();
    for (int i = 0, j = 0; i < text.length(); i++) {
        char c = text.charAt(i);
        if (c < 'A' || c > 'Z') continue;
        decipheredText += (char)((c - keyword.charAt(j) + 26) % 26 + 'A');
        j = ++j % keyword.length();
    }  
    return decipheredText;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-29 15:35:33

你明显忽略了空格。您只需添加以下一行:

代码语言:javascript
复制
if (c == ' ') {
   decipheredText += ' ';
}

一定要把它放在这一行之前:

代码语言:javascript
复制
if (c < 'A' || c > 'Z') continue;
票数 1
EN

Stack Overflow用户

发布于 2018-11-29 15:41:31

你忽略了这个空间。在检查字符范围'A‘到'Z’时检查空格,并将其作为空格添加到decipheredText中,因为您不希望空间被视为另一个字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53542147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档