题目描述
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
输入描述
输出描述
样例输入
a 1,
样例输出
1
1
1
1
题目描述
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
输入描述
输出描述
样例输入
a 1,
样例输出
1
1
1
1
题目分析:第一种判断是否是字母利用ASCII码 --------------------------------------------- package 东秦oj系列; import java.util.Scanner; public class 东秦oj1009 { public static void main(String[] args) { Scanner sc =new Scanner(System.in); int a =','; int english=0; int space=0; int num=0; int other=0; String s =sc.nextLine(); char [] help = new char[s.length()]; for(int i=0;i<s.length();i++) { help[i]=s.charAt(i); if ((int)help[i] >= 97 && (int)help[i] <= 122 || (int)help[i] >= 65 && (int)help[i] <= 90) { english++; } else if(help[i]==' ') {space++; } else if(help[i]-'0'>=0&&help[i]-'0'<=9) num++; else { other++; } } System.out.println(english); System.out.println(space); System.out.println(num); System.out.println(other); } }
----------第二种可以用哈希来判断 (推荐)
Map<Character,Integer> nodesMap =new HashMap<>();//创建一个 key 为char,键值为int的字典 for(char c:arr)//增强for遍历 字符数组 if(!nodesMap.containsKey(c))//判断这个字典的key值是否有字符c { //如果没有 就加入这个字符 并且指定键值为1 nodesMap.put(c,1); }else nodesMap.put(c, nodesMap.get(c)+1);//如果有 则让键值加1