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

Java打印字母对问题求助:期望输出Aa Bb Cc却循环A-z到B-z

解决字母对打印问题

嘿,我懂你想要的是打印Aa、Bb、Cc这种一一对应的字母对,而现在的代码会先把A和所有小写字母从a到z配对一遍,再轮到B重复这个过程对吧?这是因为你用了嵌套循环,内层循环会把每个大写字母对应的所有小写字母都遍历完,才会进入下一个大写字母。

问题根源

你的原代码逻辑是:

char ch, ch2;
for(ch = 'A'; ch <= 'Z'; ch++){
    for(ch2 = 'a'; ch2 <= 'z'; ch2++) 
        System.out.println(ch + "" + ch2);
}

外层循环每迭代一次(比如ch='A'),内层循环就会完整跑一遍a到z,所以输出是Aa, Ab, Ac...Az, Ba, Bb...Bz,和你想要的一一对应效果不符。

修正方案

其实根本不需要嵌套循环,只需要让大写字母和对应的小写字母同步递增就行。ASCII码里,大写字母和对应小写字母的差值是固定的32(比如'A'=65,'a'=97),或者用Java自带的Character.toLowerCase()方法更直观:

方法1:利用ASCII码差值

char ch;
for(ch = 'A'; ch <= 'Z'; ch++){
    // 小写字母 = 大写字母 + 32,注意强制转换为char类型
    char lowerCh = (char)(ch + 32);
    System.out.println(ch + "" + lowerCh);
}

方法2:使用Character类的API

char ch;
for(ch = 'A'; ch <= 'Z'; ch++){
    char lowerCh = Character.toLowerCase(ch);
    System.out.println(ch + "" + lowerCh);
}

效果说明

这两种写法都会让循环每次迭代时,同时处理一个大写字母和它对应的小写字母,输出结果就是你想要的:Aa、Bb、Cc……一直到Zz。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:34:09