学习任务:

视频学习

阅读案例需求

动手编写代码

案例需求:"www.pbteach.com",获取字符串中每一个字符出现的次数。

需求分析:要统计每一个字符出现的次数,那么字符和出现的次数之间存在一一对应关系;既然存在一一对应关系,我们就可以使用Map集合将元素存储起来,可以使用HashMap来存储字符,key为字符,value为字符出现的次数。

实现步骤:

1、定义字符串"www.pbteach.com"

2、将字符串转换成一个字符数组

3、创建HashMap集合对象(键:Character , 值:Integer)

4、遍历字符数组,获取每一个元素,然后根据这个字符从HashMap集合中获取指定的值

5、如果值为null,说明HashMap集合对象中没有这个键,那么就将这个字符存储到集合中,值为1

6、如果值不为null,对值进行+1操作,然后再将这个值存储到集合中

7、创建一个StringBuilder对象

8、遍历集合按照结果要求拼接字符串

9、把StringBuilder对象转换成字符串在控制台进行输出

package com.pbteach.javase.oop.map.test2;

import java.util.HashMap;
import java.util.Map;

/**
 * hashmap案例
 * 
 * @author 攀博课堂(www.pbteach.com)
 *
 */
public class HashMapTest3 {

	public static void main(String[] args) {
		 // 定义字符串"www.pbteach.com"
        String s = "www.pbteach.com" ;

        // 将字符串转换成一个字符数组; public char[] toCharArray()将此字符串转换为新的字符数组。
        char[] chs = s.toCharArray() ;

        // 创建HashMap集合对象(键:Character , 值:Integer)
        Map<Character , Integer> map = new HashMap<Character , Integer>() ;

        // 遍历字符数组,然后根据这个字符从HashMap集合中获取指定的值
        for(int x = 0 ; x < chs.length ; x++) {
            // 获取每一个元素
            char ch = chs[x] ;

            // 然后根据这个字符从HashMap集合中获取指定的值
            Integer integer = map.get(ch);

            // 如果值为null
            if(integer == null) {

                // 那么就将这个字符存储到集合中,值为1
            	map.put(ch , 1) ;

            }else {
                integer = integer + 1 ;
                map.put(ch , integer) ;
            }

        }

        // 创建一个StringBuilder对象
        StringBuilder sb = new StringBuilder() ;

        // 遍历集合按照结果要求拼接字符串
        map.forEach((k,v)->{
        	sb.append(k).append("(").append(v).append("),") ;
        });
       
        // 把StringBuilder对象转换成字符串在控制台进行输出
        String result = sb.toString();
        System.out.println(result);
        
	}
}

输出:

p(1),a(1),b(1),c(2),t(1),e(1),w(3),h(1),m(1),.(2),o(1),
提问-攀博课堂
我要提问 不会就问,有效沟通
关注公众号,加入微信群交流提问。 攀博课堂官方公众号
问答列表,查看本知识点所有问题