Java 统计字母个数

岁酱吖の 提交于 2020-02-24 22:49:33

原理:

  1. 将字符串转换成char字符数组
  2. 然后使用另一个数组存储

 

  1. 代码如下
    
    public class CalChar {
    public static void main(String[] args) {
    	Scanner scanner = new Scanner(System.in);
    	String string = scanner.next();
    	
    	char[] ch = new char[string.length()];
    	int[] nums = new int[26];
    	ch =string.toCharArray();
    	
    	for (int i = 0; i < string.length(); i++) {
    
    		nums[ch[i]-97]=ch[i]-97; //这里较为巧妙,将底层字母ascii码转换成数组下标
    	}
    
    }
    }

加强版:统计数字,大写字母,小写字母

import java.util.Arrays;
import java.util.Scanner;


public class CalChar {
	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String string = scanner.next();

		char[] ch = new char[string.length()];
		int[] lowNum = new int[26];// 小写字母
		int[] upNum = new int[26];// 大写字母
		int[] nums = new int[10];// 数字
		ch = string.toCharArray();

		for (int i = 0; i < string.length(); i++) {
			// 小写字母 a~z =97 ~(97+26)
			if (0 <= (ch[i] - 97) && (ch[i] - 97) <= 26) {
				lowNum[ch[i] - 97]++;
			}
			// 大写字母 A~Z =65 ~(65+26)
			if (0 <= (ch[i] - 65) && (ch[i] - 65) <= 26) {
				upNum[ch[i] - 65]++;
			}
			// 数字 0~9 = 48 ~ (48+26)
			if (0 <= (ch[i] - 48) && (ch[i] - 48) <= 9) {
				nums[ch[i] - 48]++;
			}

		}
		
		CalChar calChar = new CalChar();
		calChar.lowCount(lowNum);
		System.out.println();
		calChar.upCount(upNum);
		System.out.println();
		calChar.count(nums);
		
	}

	public void count(int[] nums) {
		//数字计数
		for (int i = 0; i < nums.length; i++) {
			if (nums[i] != 0) {
				System.out.print((char)(i+48)+":"+nums[i]+"个"+"\t");
			}
		}
	}
	//小写字母计数
	public void lowCount(int[] lowNum) {
		for (int i = 0; i < lowNum.length; i++) {
			if (lowNum[i] != 0) {
				System.out.print((char) (i+97) + ":" + lowNum[i] + "个"+"\t");
			}
		}
	}
	//大写字母计数
	public void upCount(int[] ch) {
		for (int i = 0; i < ch.length; i++) {
			if (ch[i] != 0) {
				System.out.print((char) (i+65) + ":" + ch[i] + "个"+"\t");
			}
		}
	}
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!