JAVA练习19
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档
目录
前言
提示这里可以添加本文要记录的大概内容
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<Character, Integer> map = new LinkedHashMap<Character, Integer>();
//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<Map.Entry<Character, Integer>> entrys = map.entrySet();
for (Map.Entry<Character, Integer> entry : entrys) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
二、题目2-map简单应用
1.题目描述
现在有一个map集合如下
Map<Integer,String> map = new HashMap<Integer, String>();
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<Integer, String> map = new HashMap<Integer, String>();
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<Integer, String> map) {
for (Integer key : map.keySet()) {
String value = map.get(key);
System.out.println(key + ":" + value);
}
}
}