如何修改Java程序使其输出小写字符而非大写字符?
修改Java字符统计程序为小写输出
嘿,这个问题很简单,咱们直接抓关键部分调整就行!
你的程序统计逻辑完全没问题,问题就出在输出字符的ASCII码值上。原代码输出时用了 (char)(i+65),而65对应的是大写字母A的ASCII码,所以输出的都是大写形式。要改成小写,只需要把这个数值换成小写字母a的ASCII码——也就是97。
具体修改步骤:
找到输出循环里的这一行:
System.out.print(" "+(char )(i+65)+ "(" + a[i]+")");
把i+65改成i+97,修改后变成:
System.out.print(" "+(char)(i+97)+ "(" + a[i]+")");
完整修改后的代码:
import java.util.Scanner; public class Q2 { public static void main(String[] args) { int a[]=new int[26]; Scanner sc = new Scanner (System.in); String str=sc.nextLine(); for(int i = 0; i<str.length();i++) { if(str.charAt(i)>=65 && str.charAt(i)<=90) { a[str.charAt(i)-65]++; } else if(str.charAt(i)>=97 && str.charAt(i)<=122) { a[str.charAt(i)-97]++; } } for(int i=0;i<26;i++) { if(a[i]>0) { // 这里把65换成97,输出小写字母 System.out.print(" "+(char)(i+97)+ "(" + a[i]+")"); } } } }
额外小建议(可选):
如果你觉得直接写ASCII数值不够直观,也可以用字符常量代替,可读性会更好——比如把i+97写成i+'a'。因为Java里字符和整数可以直接运算,'a'的底层就是97,这样代码看起来更易懂:
System.out.print(" "+(char)(i+'a')+ "(" + a[i]+")");
这样调整后,程序输出的字符就全是小写啦!
内容的提问来源于stack exchange,提问作者iman farhana
相关产品推荐
相关产品推荐

