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

Java如何锁定对象为char类型避免强转int,不修改sout行输出X Y Z

问题根因

Java 语言规范明确规定,char 类型参与算术运算时,会自动向上转型为 int 类型计算结果。你代码中的 letter + i 是两个 char 做算术加法,运算结果为 int 类型,后续和字符串 " " 拼接时,会直接输出数字的字符串形式,所以得到 88 89 90 而非字符本身。
Java 中没有「锁定字符类型避免自动转为整数」的语法规则,这种自动类型提升是编译阶段就确定的行为,无法直接修改。

可行解决方案

核心思路是不修改 System.out.print 那行代码,仅调整前面的变量定义和循环逻辑,让 letter + i 运算变成字符串拼接而非算术加法,自然就不会出现数字输出:

public class LectureFour {
   public static void main(String args[]) {
      // 将letter定义为空字符串,抵消后续+运算的算术属性
      String letter = "";
      String i;
      // 循环控制i依次取值为"X" "Y" "Z"
      for (i = "X"; i.charAt(0) <= 'Z'; i = String.valueOf((char)(i.charAt(0) + 1))) {
         // 此行代码完全没有修改,也没有使用被禁止的强转写法
         System.out.print(letter + i + " ");
      }
   }
}

运行后输出为 X Y Z ,如果需要严格去掉末尾多余的空格,可以额外在循环结束后输出一次退格符,或者调整循环逻辑判断终止条件即可。

方案合规性说明

  • 完全未修改题目要求保留的 System.out.print 行代码
  • 未使用被禁止的在 print 参数内强转 (char)(letter + i) 的写法
  • 所有修改仅涉及变量类型声明和循环控制逻辑,符合题目约束

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:15:02