统计字符串中每个字母出现的次数

时间:2022-08-09 22:15:58

给定一个包含各种字符的字符串,打印出其中字母和其出现的次数。

实现原理:

1. 利用正则匹配去除非字母字符。

2. 将字母为键,出现次数为值存入map。

3. 扫描字符串,若字母已存在于map中,值加1.

4. 打印map。

 

    public static void count(String input) 
    { 
//?表示非贪婪匹配,i表示忽略大小写,[^a-z]匹配所有非a-z范围类字符。 String regex
= "(?i)[^a-z]"; String result = input.replaceAll (regex, ""); System.out.println (result); HashMap<String, Integer> map = new HashMap<String, Integer> (); for ( int i = 0; i < result.length (); i++ ) { String one = result.charAt (i) + ""; if (null == map.get (one)) { //新字符,存入map,值为1 map.put (one, 1); } else { //已存在,值加一 map.put (one, map.get (one) + 1); } } System.out.println (map); }

 测试代码:

    public static void main ( String args[] ) {
        String input = "016a 8b9c213d20df0G9E"; 
        CountLetters test= new CountLetters();
        test.countAlphabet(input);
    }

返回结果:

abcddfGE
{f=1, E=1, d=2, G=1, b=1, c=1, a=1}