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

求助:Java程序输出ASCII码而非实际字符的解决方法

解决Java加密程序输出ASCII码而非字符的问题

嘿,我来帮你搞定这个小问题!你的程序逻辑没问题,但输出时的类型转换出了岔子——当你给char类型的字符加上整数2时,Java会自动把char提升为int类型(因为char本质是16位无符号整数),所以直接输出的话就会打印对应的ASCII数值,而不是你想要的字符。

两种快速解决方法:

  1. 强制类型转换回char
    在计算后把结果强制转换为char类型,明确告诉Java你要输出的是字符而非数字。修改循环里的输出语句即可:

    // 假设你的原代码是遍历char数组输出:
    Scanner scanner = new Scanner(System.in);
    String input = scanner.nextLine();
    char[] inputCharArray = input.toCharArray();
    
    for (char c : inputCharArray) {
        // 原来的错误写法:输出int类型的ASCII值
        // System.out.print(c + 2);
        // 修改后的正确写法:强制转换为char
        System.out.print((char)(c + 2));
    }
    
  2. 通过字符串拼接触发自动转换
    把计算结果和空字符串拼接,Java会自动把数值转换为对应的字符,写法更简洁:

    for (char c : inputCharArray) {
        System.out.print("" + (c + 2));
    }
    

效果验证:

如果输入字符串是"hello",两种方法都会输出"jgnnq"——每个字母的ASCII值加2后对应的字符,完全符合你预期的加密功能。

内容的提问来源于stack exchange,提问作者gabi145

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:44:15