You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Java凯撒密码代码实现字符左移2位?

修改凯撒密码代码实现左移2位

要将现有右移2位的凯撒密码代码改成左移2位,核心是调整字符偏移方向并修正边界判断逻辑,同时补充非字母字符的保留处理(原代码未区分字母与非字母,会导致空格、标点偏移错误)。

修改后的完整代码

public static void main(String[] args) {
    System.out.println(caesarEncrypt("Jgnnq vjgtg!", 2)); 
}

public static String caesarEncrypt(String ss, int shift){
    String s = "";
    int len = ss.length();
    for(int x = 0; x < len; x++){
        char current = ss.charAt(x);
        // 仅对小写字母执行偏移操作
        if (current >= 'a' && current <= 'z') {
            char c = (char)(current - shift);
            // 处理左移后超出字母表下限的情况
            if (c < 'a') {
                s += (char)(current + (26 - shift));
            } else {
                s += c;
            }
        } else {
            // 非小写字母直接保留原字符
            s += current;
        }
    }
    return s;
}

关键修改点

  • 偏移方向调整:原代码通过+ shift实现右移,左移需要改为- shift,即减少字符的ASCII值。
  • 边界判断修正:原代码判断右移是否超出'z',左移需要判断是否低于'a';若超出下限,通过+ (26 - shift)将字符绕回字母表末尾(比如'a'左移2位变为'y')。
  • 非字母字符处理:新增判断逻辑,仅对小写字母执行偏移,空格、标点等非字母字符直接保留,确保与示例输出一致。

测试验证

调用caesarEncrypt("Jgnnq vjgtg!", 2)会输出Hello there!,符合左移2位的预期结果。

内容的提问来源于stack exchange,提问作者gaming With HENEy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 22:35:17