`
cm14k
  • 浏览: 30640 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

统计字符串中字符出现的次数

    博客分类:
  • Java
 
阅读更多

方法一:

用数组实现,把字符的ASCII码值作为数组的下标,对字符出现的次数不断累加.

 

实现对ASCII码128个字符出现次数的统计.

//字符统计
public class CharacterTest
{
	public static void main(String[] args) 
	{
		if (args.length == 0)
		{
			System.out.println("参数错误!");
			System.exit(1);
		}
		int[] character = new int[128];	//存放字符出现次数 初值为零
		for (int i = 0; i < args[0].length(); i++)
		{	char ch = args[0].charAt(i);
			character[ch]++;					//次数累加
		}
		for (int i = 0; i < character.length; i++)	//输出
		{
			if (character[i] != 0)
			{
				System.out.println((char)i + ": " + character[i]); //字符 : 出现次数
			}
		}
	}
}

 

方法二:

对任意字符出现次数进行统计. 使用Map实现.

//字符统计
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.Iterator;

public class CharCount 
{
	public static void main(String[] args) 
	{
		Map<Character,Integer> map = new HashMap<Character,Integer>();
		if (args.length == 0)
		{
			System.out.println("参数错误!");
			System.exit(1);
		}
		for (int i = 0,length = args[0].length(); i < length; i++)
		{
			char ch = args[0].charAt(i);
			if (map.containsKey(ch))				//如果字符存在,对应出现次数加一
			{
				int value = map.get(ch);
				value++;
				map.put(ch,value);
			}
			else									//加入Map ,出现次数初值为1
			{
				map.put(ch, 1);
			}
		}

		//输出统计结果
		Set<Character> set=map.keySet();
		for (Iterator<Character> ite = set.iterator(); ite.hasNext();)
		{
			char ch = ite.next();
			System.out.println(ch + ": " + map.get(ch));
		}
	}
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics