zx2415286134 2022-03-18 23:59 采纳率: 66.7%
浏览 115

输入一行字符,分别统计其中英文字母,空格,数字,和其他字的个数。

import java.util.Scanner;
/*
输入一行字符,分别统计其中英文字母,空格,数字,和其他字的个数。
*/
public class C1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一串字符:");
String str = sc.nextLine();
//规定一个计数器,以表示字符在输入字符串中的重复次数
int count = 1;
//被比较的字符
char comparedKey;
//下一个字符
char nextKey;
//上一个字符
char preKey;

    F1:
    for (int i = 0; i < str.length(); ++i) {
        //遍历取出输入字符串中的单个字符
        comparedKey = str.charAt(i);
        for (int j = i + 1; j < str.length(); ++j) {
            //遍历取出输入字符串的下一个字符
            nextKey = str.charAt(j);
            //字符相等时,计数器加1
            if (nextKey == comparedKey) ++count;
        }
        for (int j = i - 1; j > 0; --j) {
            //遍历取出输入字符串的上一个字符
            preKey = str.charAt(j);
            //当前字符与之前的字符存在相等字符时,跳过当前循环
            if (preKey == comparedKey) {
                count = 1;
                continue F1;
            }
        }
        System.out.println(comparedKey + "字符出现的次数:" + count);
        //重置计数器
        count = 1;
    }
    sc.close();
}

}

//输出结果:
//结果会莫名其妙多出一次相同字符输出
请输入一串字符:
dsadasc das
d字符出现的次数:3
s字符出现的次数:3
a字符出现的次数:3
d字符出现的次数:2
c字符出现的次数:1
字符出现的次数:1

  • 写回答

2条回答 默认 最新

  • Code_流苏 优质创作者: C/C++技术领域 2022-03-19 00:04
    关注

    题目要求:输入一行字符,分别统计其中英文字母,空格,数字,和其他字的个数。
    这样实现有些不符合题意啊,没必要分d s a 字符 直接统计所有字母 空格 数字 和其它的 数量就可以了。

    希望对题主有所帮助!可以的话,帮忙点个采纳!

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月18日