java源码——统计字符串中字符出现的次数

对于任意输入的一段字符串,读取并且计算其中所有字符出现的次数。

使用HashMap存储字符和其对应的出现的次数,输出时,对HashMap进行遍历。

难点在于对HashMap的遍历,第一次使用,也是学习了。


Main.java

package com.fuxuemingzhu.countwords.main;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;

/**
 * <p>
 * Title: Main
 * </p>
 * <p>
 * Description:输入一个字符串,计算字符串中每个字符出现的次数
 * </p>
 * 
 * @author fuxuemingzhu
 * 
 * @email fuxuemingzhu@163.com
 * 
 * @date 2014年11月24日 下午3:29:41
 */
public class Main {

	public static String input;

	public static HashMap<String, Integer> charsCount = new HashMap<String, Integer>();

	/**
	 * <p>
	 * Title: main
	 * </p>
	 * <p>
	 * Description:main()方法
	 * </p>
	 * 
	 * @param args
	 * 
	 */
	public static void main(String[] args) {
		input();
		countWords();
		output();
	}

	/**
	 * <p>
	 * Title: input
	 * </p>
	 * <p>
	 * Description:输入需要计算的字符串
	 * </p>
	 * 
	 */
	public static void input() {
		System.out.println("请输入需要计算的字符串:");
		Scanner scanner = new Scanner(System.in);
		input = scanner.nextLine();
		scanner.close();
	}

	/**
	 * <p>
	 * Title: countWords
	 * </p>
	 * <p>
	 * Description:用HashMap保存每个字符出现的次数
	 * </p>
	 * 
	 */
	public static void countWords() {
		for (int i = 0; i < input.length(); i++) {
			String temp = input.substring(i, i + 1);
			if (charsCount.containsKey(temp)) {
				charsCount.put(temp, charsCount.get(temp) + 1);
			} else {
				charsCount.put(temp, 1);
			}
		}
	}

	/**
	 * <p>
	 * Title: output
	 * </p>
	 * <p>
	 * Description:将HashMap中的每一对元素输出
	 * </p>
	 * 
	 */
	public static void output() {
		System.out.println("您输入的字符串为:" + input + "\n其中");
		for (Iterator<String> iterator = charsCount.keySet().iterator(); iterator
				.hasNext();) {
			String words = (String) iterator.next();
			int num = charsCount.get(words);
			System.out.println("'" + words + "'出现了" + num + "次");
		}

	}
}

附运行截图。



posted @ 2014-11-26 19:06  负雪明烛  阅读(54)  评论(0编辑  收藏  举报