从键盘输入一行英文字符串,只统计字符串中出现的每个英文字母的个数。

不要原版抄袭,可查看逻辑。题目非原创。。。

问题描述:
从键盘输入一行英文字符串,只统计字符串中出现的每个英文字母的个数。大小写字母算相同的字符,不做区分,例如a和A,算相同字符。
【输入形式】
输入一行英文字符串。
【输出形式】
以合适的形式输出每个英文字母出现的次数,没有出现的字母,不输出次数。
【样例输入①】
hello,world.
【样例输出①】
(D)Num=1
(E)Num=1
(H)Num=1
(L)Num=3
(O)Num=2
®Num=1
(W)Num=1
【样例输入②】
this is a pen,that is a circle.
【样例输出②】
(A)Num=3
©Num=2
(E)Num=2
(H)Num=2
(I)Num=4
(L)Num=1
(N)Num=1
§Num=1
®Num=1
(S)Num=3
(T)Num=3
实验结果:

import java.util.Locale;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine().toLowerCase(Locale.ROOT);//全部准换为小写,便于判断,也可以转换为大写。大写后下面就需要改变。
        char[] ch = new char[str.length()];
        for (int i = 0; i < ch.length; i++) {
            ch[i] = str.charAt(i);
        }
        chars(ch);
        in.close();
    }

    public static void chars(char[] ch){
        int[] count = new int[26];//定义26个数组,分别对应a-z,用来统计不同字母的个数。
        for (char j = 97; j <= 122; j++) {//a-z 的过程。
            for (int i = 0; i < ch.length; i++) {
                if (ch[i]==j){
                    count[j-97]++;//对应字母的个数加一,只能是0-25。要和j相关。25-(122-j)=j-97
                }
            }
        }
        for (int i = 0; i < 26; i++) {
            if (count[i]!=0){
                System.out.println("("+(char)(65+i)+")Num="+count[i]);
            }
        }
    }
}



  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值