在加密程序中从 Z 更改为 A

发布于 2024-11-01 05:46:39 字数 149 浏览 1 评论 0原文

我正在用 Java 编写一个加密程序,其中我需要将输入字符串更改为某个值。当我到达 Z 并需要将其更改为 A 而不是 ASCII 代码中的下一个字符时,我遇到了问题。我如何将其从 Z 更改为 A?我知道我还需要更改它加密的值,但我对如何将 ASCII 中的 Z 更改为 A 一片空白。

I am writing an encrypt program in Java in which I need to change the input string by a certain value. I am having a problem when I get to the Z and need to change it into an A not the next character in the ASCII code. How would I change it from Z to A? I know that I would also need to change the value that it is being encrypted by but I am drawing a blank on how to change Z to A in ASCII.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

静若繁花 2024-11-08 05:46:39

假设您想将所有字母移动 n

((letter - 'A' + n) % 26) + 'A'

并解码:

((letter - 'A' + 26 - n) % 26) + 'A'

Assuming you want to shift all letters by n:

((letter - 'A' + n) % 26) + 'A'

And to decode:

((letter - 'A' + 26 - n) % 26) + 'A'
黯然#的苍凉 2024-11-08 05:46:39

不知道为什么要使用 ASCII。只需使用字符

char ch = ...
if (ch >= 'A' && ch < 'Z') ch++;
else if (ch == 'Z') ch = 'A';
else if (ch >= 'a' && ch < 'z') ch++;
else if (ch == 'z') ch = 'z';

No sure why you are using ASCII. Just use char

char ch = ...
if (ch >= 'A' && ch < 'Z') ch++;
else if (ch == 'Z') ch = 'A';
else if (ch >= 'a' && ch < 'z') ch++;
else if (ch == 'z') ch = 'z';
谁许谁一生繁华 2024-11-08 05:46:39

正如 sverre 所指出的:

    String s = "AGJAJAJMLVJHNJAFVZVZJADFYAQ";
    StringBuffer e = new StringBuffer();
    char[] cs = s.toCharArray();
    for (int i = 0; i < cs.length; i++) {
        e.append((char)('A' + (cs[i] - 'A' + 1) % 26));
    }
    System.out.println(s);
    System.out.println(e.toString());

As pointed out by sverre:

    String s = "AGJAJAJMLVJHNJAFVZVZJADFYAQ";
    StringBuffer e = new StringBuffer();
    char[] cs = s.toCharArray();
    for (int i = 0; i < cs.length; i++) {
        e.append((char)('A' + (cs[i] - 'A' + 1) % 26));
    }
    System.out.println(s);
    System.out.println(e.toString());
沙与沫 2024-11-08 05:46:39

让我知道这是否有效:

public String encode(String str) {
      String res = new String();
      for (char c : str) {
           if (Character.isUpperCase(c))
               (c == 'Z') ? res.append('A') : res.append(c+1);
           else throw new Exception(c + " is not a A-Z character");
      }
      return res;
}

Let me know if that does the trick:

public String encode(String str) {
      String res = new String();
      for (char c : str) {
           if (Character.isUpperCase(c))
               (c == 'Z') ? res.append('A') : res.append(c+1);
           else throw new Exception(c + " is not a A-Z character");
      }
      return res;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文