【问题标题】:How to convert a letter to an another letter in Java [duplicate]如何在Java中将一个字母转换为另一个字母[重复]
【发布时间】:2023-03-10 09:05:02
【问题描述】:

我正在尝试使用一个简单的加密程序将一个字母转换为 Java 中的另一个字母,该程序会将每个字母转换为按字母顺序排列的一个位置,但字母 A 除外(A 的值是:“( 0-1)")。所以字母 B 会变成 A,字母 C 会变成 B,字母 R 会变成 Q,依此类推。

示例:I love fish 将变为 H knud ehrg

【问题讨论】:

  • 为什么R会变成P?我以为中间有一个 Q。
  • 谷歌“Caesar Cipher”和“ROT13”获取程序创意。
  • 我想你应该在这里看到stackoverflow.com/questions/19108737/…
  • 感谢您这么快回答!我会确保检查提供的代码,再次感谢您,非常感谢!
  • 对于'A',只需完成一个循环并分配给Z,否则解密时会出现问题。

标签: java encryption


【解决方案1】:

您可以使用类似以下算法的方法来完成此操作:

// Our input string.
String input = "I love fish";

// Contains the "encrypted" output string.
StringBuilder encrypted = new StringBuilder();

// Process each character in the input string.
for (char c : input.toCharArray()) {
    if (Character.toLowerCase(c) != 'a' && Character.isLetter(c)) {
        // If the character is a letter that's not 'a', convert it to the previous letter.
        char previous = (char) ((int) c - 1);
        encrypted.append(previous);
    } else {
        // Otherwise just append the original character.
        encrypted.append(c);
    }
}

// Prints the output to stdout.
System.out.println(encrypted.toString());

【讨论】:

  • 谢谢!哇,这确实有效,我很快将它复制并粘贴到 Eclipse 中,它确实有效。欣赏它,伙计,你让我很开心。
猜你喜欢
  • 2021-03-17
  • 2016-06-13
  • 1970-01-01
  • 2014-11-18
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 2020-08-24
  • 2017-04-18
相关资源
最近更新 更多