欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

写一函数打印给定字符串中各字符个数,字符串中只包含大小写字符与数字

程序员文章站 2022-06-19 12:54:16
写一函数打印给定字符串中各字符个数,字符串中只包含大小写字符与数字例:如参数为 "abcxyzAbc",则输出:a 1b 2c 2x 1y 1z 1A 1方法一(数组形式),不按照题目小写字母在前,大写字母在后的顺序,单单是为了统计各字符出现的次数:public static void main(String[] args) {Scanner sc = new Scanner(System.in);String a = sc.nextLine();...

写一函数打印给定字符串中各字符个数,字符串中只包含大小写字符与数字

例:如参数为 "abcxyzAbc",则输出:

a 1

b 2

c 2

x 1

y 1

z 1

A 1

方法一(数组形式),不按照题目小写字母在前,大写字母在后的顺序,单单是为了统计各字符出现的次数:

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String a = sc.nextLine();
		int[] b = new int[123];
		for(char c : a.toCharArray()) {
			b[c] ++;
		}
		for(int i=48;i<=122;i++) {
			if(b[i]==0) {
			}else {
				System.out.println((char)i+" "+b[i]);
			}

		}
	}

方法二(数组形式),按照题目小写字母在前,大写字母、数字在后的顺序,统计各字符出现的次数,分开写for循环即可:

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String a = sc.nextLine();
		int[] b = new int[123];
		for(char c : a.toCharArray()) {
			b[c] ++;
		}
		for(int i=97;i<=122;i++) {
			if(b[i]==0) {
				continue;
			}
			char c = (char)i;
			System.out.println(c+" "+b[i]);
		}
		for(int i=65;i<=90;i++) {
			if(b[i]==0) {
				continue;
			}
			char c = (char)i;
			System.out.println(c+" "+b[i]);
		}
		for(int i=48;i<=57;i++) {
			if(b[i]==0) {
				continue;
			}
			char c = (char)i;
			System.out.println(c+" "+b[i]);
		}
	}

方法三(Map集合形式): 不按照题目小写字母在前,大写字母在后的顺序,单单是为了统计各字符出现的次数:

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String a = sc.nextLine();
		Map<Character, Integer> map = new HashMap<>();
		for (int i = 0; i < a.length(); i++) {
			if (map.get(a.charAt(i)) != null) {
				int num = map.get(a.charAt(i));
				num++;
				map.put(a.charAt(i), num);
			} else {
				map.put(a.charAt(i), 1);
			}
		}
		Object[] array = map.entrySet().toArray();
		for (int i = 0; i < array.length; i++) {
			String[] split = array[i].toString().split("=");
			System.out.println(split[0] + " " + split[1]);
		}

	}

 

 

 

 

本文地址:https://blog.csdn.net/ls_wifi/article/details/111881732

相关标签: 实战算法