JAVA练习19-统计一句话中重复单词的个数、MAP简单应用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

 

目录

 

前言

一、题目1-统计一句话中重复单词的个数

1.题目描述

2.思路与代码

2.1 思路

2.2 代码

二、题目2-map简单应用

1.题目描述

2.思路与代码

2.1 思路

2.2 代码

总结


前言

提示:这里可以添加本文要记录的大概内容:

1月13日练习内容


提示:以下是本篇文章正文内容,下面案例可供参考

一、题目1-统计一句话中重复单词的个数

1.题目描述

描述

统计控制台输入的一句话中不同字⺟字符出现的次数。例如:现有字符串"Hello World!",上述字符串中各个字符的出现的次数为:

H:1

e:1
l:3
o:2
W:1
r:1
d:1
(不考虑数字、空格和特殊字符的个数,按照字符在字符串中出现的顺序显示。相同字母的大小写算两个不同字符)

输入描述:

控制台任意输入一段话,可以有空格和特殊符号

输出描述:

输出字符和字符对应的出现字数(字符和出现次数之间用:隔开,输出逻辑已经给出)

2.思路与代码

2.1 思路

1.使用字符串的replaceALL函数对字符串进行替换

2.遍历字符串,定义一个key用来获取字符串中的字符,value得到字符串中字符出现的个数

3.当value为null时,代表字符为首次出现,将其放入集合,并将value为1,当value不为空时,遍历字符串,value++,

4.最后输出

2.2 代码

代码如下(示例):

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        Map map = new LinkedHashMap();

        //write your code here......
        line = line.replaceAll("[^a-zA-Z]", "");
        for (int i = 0; i < line.length(); i ++) {
            char key = line.charAt(i);
            Integer value = map.get(key);

            if (value == null) {
                map.put(key, 1);
            } else {
                value ++;
                map.put(key, value);
            }
        }

        Set> entrys = map.entrySet();
        for (Map.Entry entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}

二、题目2-map简单应用

1.题目描述

现在有一个map集合如下:
    Map map = new HashMap();
    map.put(1, "Amy");
    map.put(2, "Joe");
    map.put(3, "Tom");
    map.put(4, "Susan");
    要求:
        1.遍历集合,并将序号与对应人名打印。
        2.向该map集合中插入一个编码为5姓名为控制台输入的人名的信息
        3.移除该map中的编号为4的信息

        4.将map集合中编号为3的姓名信息修改为"Tommy"

        5.再次遍历经过上述操作后的集合,并将序号与对应人名打印。(注:第一次输出和第二次输出需用空行隔开)

输入描述:

String类型人名

输出描述:

先将题中给定的集合遍历输出,完成题中要求之后再遍历输出一次(输出格式为key+":"+value,第一次输出和第二次输出用空行隔开)

 

2.思路与代码

2.1 思路

1.定义一个打印集合的方法printMap(),用来遍历集合并输出集合对象

2.使用put()函数将key'为5的信息加入集合

3.使用remove()函数删除key为4信息

4.使用replace()函数修改key为3的姓名

5.再次调用printMap函数遍历集合并输出

2.2 代码

代码如下(示例):

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner  = new Scanner(System.in);
        String name = scanner.next();
        Map map = new HashMap();
        map.put(1, "Amy");
        map.put(2, "Joe");
        map.put(3, "Tom");
        map.put(4, "Susan");

        //write your code here......
        //遍历集合,并将序号与对应人名打印。
        printMap(map);

        //第一次输出和第二次输出需用空行隔开
        System.out.println();

        //向该map集合中插入一个编码为5姓名为控制台输入的人名的信息
        map.put(5, name);

        //移除该map中的编号为4的信息
        map.remove(4);

        //将map集合中编号为3的姓名信息修改为"Tommy"
        map.replace(3, "Tommy");

        //再次遍历经过上述操作后的集合
        printMap(map);

    }
    public static void printMap(Map map) {
        for (Integer key : map.keySet()) {
            String value = map.get(key);
            System.out.println(key + ":" + value);
        }
    }
}

 


总结

 

 

你可能感兴趣的:(java练习,java)