利用键盘录入,输入一个字符串,统计该字符串中各个字符的数量

摘要:
分析以下需求,并用代码实现:
(1)利用键盘录入,输入一个字符串
(2)统计该字符串中各个字符的数量

第一种写法:

如:
用户输入字符串:deefgabc
程序输出结果:{a=1, b=1, c=1, d=1, e=2, f=1, g=1}

参考代码:

package com.gx.demo;

import java.util.Scanner;
import java.util.TreeMap;

public class Test {
	public static void main(String[] args) {
		// 键盘录入字符串
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个字符串:");
		// 接收字符串
		String str = sc.nextLine();
		// 用于统计字符串
		String newSet = getSet(str);
		System.out.println(newSet);
	}

	private static String getSet(String str) {
		// 1,将字符串转换为字符数组
		char[] chars = str.toCharArray();
		// 2,创建一个map集合,将字符和出现的次数存储到集合中,并排序
		TreeMap<Character, Integer> map = new TreeMap<Character, Integer>();
		// 3,遍历字符数组
		for (char c : chars) {
			map.put(c, map.get(c) != null ? map.get(c) + 1 : 1);
		}		
		// 4,返回集合形式
		return map.toString();
	}
}

输出结果:

请输入一个字符串:
deefgabc
{a=1, b=1, c=1, d=1, e=2, f=1, g=1}

第二种写法:

如:
用户输入字符串:deefgabc
程序输出结果:a(1)b(1)c(1)d(1)e(2)f(1)g(1)

参考代码:

package com.gx.demo;

import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

public class Test2 {
	public static void main(String[] args) {
		// 键盘录入字符串
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个字符串:");
		// 接收字符串
		String str = sc.nextLine();
		// 用于统计字符串
		String newSet = getSet(str);
		System.out.println(newSet);
	}

	private static String getSet(String str) {
		// 1,将字符串转换为字符数组
		char[] chars = str.toCharArray();
		// 2,创建一个map集合,将字符和出现的次数存储到集合中,并排序
		TreeMap<Character, Integer> map = new TreeMap<Character, Integer>();
		// 3,遍历字符数组
		for (char c : chars) {
			map.put(c, map.get(c) != null ? map.get(c) + 1 : 1);
		}
		// 4,创建StringBuffer
		StringBuffer sb = new StringBuffer();
		// 5,遍历map集合
		for (Map.Entry<Character, Integer> entry : map.entrySet()) {
			sb.append(entry.getKey()).append("(").append(entry.getValue()).append(")");
		}
		// 6,返回StringBuffer的字符串形式
		return sb.toString();
	}
}

输出结果:

请输入一个字符串:
deefgabc
a(1)b(1)c(1)d(1)e(2)f(1)g(1)

猜你喜欢

转载自blog.csdn.net/weixin_44563573/article/details/103401331
今日推荐