gpt4 book ai didi

java - Java中的简单凯撒密码

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:52:00 25 4
gpt4 key购买 nike

嘿,我正在使用公式 [x-> (x+shift-1) mod 127 + 1] 在 Java 中制作一个简单的凯撒密码我想让我的加密文本具有除控制字符之外的 ASCII 字符(即从 32-127)。如何避免在加密文本中应用 0-31 的控制字符。谢谢。

最佳答案

这样的事情怎么样:

public String applyCaesar(String text, int shift)
{
char[] chars = text.toCharArray();
for (int i=0; i < text.length(); i++)
{
char c = chars[i];
if (c >= 32 && c <= 127)
{
// Change base to make life easier, and use an
// int explicitly to avoid worrying... cast later
int x = c - 32;
x = (x + shift) % 96;
if (x < 0)
x += 96; //java modulo can lead to negative values!
chars[i] = (char) (x + 32);
}
}
return new String(chars);
}

诚然,这将 127 视为非控制字符,但事实并非如此……您可能希望调整它以将范围保持为 [32, 126]。

关于java - Java中的简单凯撒密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1821545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com