【Java刷题进阶】基础入门篇⑨

举报
陈橘又青 发表于 2022/09/28 15:38:25 2022/09/28
【摘要】 第一题:统计一句话中重复单词的个数 🍂题目描述统计控制台输入的一句话中不同字⺟字符出现的次数。例如:现有字符串"Hello World!",上述字符串中各个字符的出现的次数为:H:1e:1l:3o:2W:1r:1d:1(不考虑数字、空格和特殊字符的个数,按照字符在字符串中出现的顺序显示。相同字母的大小写算两个不同字符)输入描述:控制台任意输入一段话,可以有空格和特殊符号输出描述:输出字符...

第一题:统计一句话中重复单词的个数

🍂题目描述

统计控制台输入的一句话中不同字⺟字符出现的次数。例如:现有字符串"Hello World!",上述字符串中各个字符的出现的次数为:
H:1
e:1
l:3
o:2
W:1
r:1
d:1

(不考虑数字、空格和特殊字符的个数,按照字符在字符串中出现的顺序显示。相同字母的大小写算两个不同字符)

输入描述:
控制台任意输入一段话,可以有空格和特殊符号
输出描述:
输出字符和字符对应的出现字数(字符和出现次数之间用:隔开,输出逻辑已经给出)

🍂示例

输入: Hello World
输出:
H:1
e:1
l:3
o:2
W:1
r:1
d:1

🍃题解

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>();
 line = line.replaceAll("[^a-zA-Z]", "");
for (int i = 0; i < line.length(); i++) {
    char c = line.charAt(i);
    if (map.containsKey(c)) {
        map.put(c, map.get(c) + 1);
    } else {
        map.put(c, 1);
    }
}
        //write your code here......
       
 
        Set<Map.Entry<Character, Integer>> entrys = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}

第二题:map简单应用

🍂题目描述

现在有一个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,第一次输出和第二次输出用空行隔开)

🍂示例

输入: David
输出:
1:Amy
2:Joe
3:Tom
4:Susan

1:Amy
2:Joe
3:Tommy
5:David

🍃题解

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");
        for(Map.Entry<Integer, String> i: map.entrySet()) //输出原哈希表
            System.out.println(i.getKey() + ":" + i.getValue());
        System.out.println(); //空行
        map.put(5, name); //放入操作
        map.remove(4); //移除编号4
        map.replace(3, "Tommy"); //替换value值
        for(Map.Entry<Integer, String> i: map.entrySet()) //输出处理后的哈希表
            System.out.println(i.getKey() + ":" + i.getValue());
    }
}

第三题:集合排序

🍂题目描述

有三个客户对象,将三个客户对象存入集合中,并将其按照消费总额从高到低排序

输入描述:
三个整数,分别代表三个客户的消费值
输出描述:
根据消费额从高到低排序后的集合(输出部分预设代码已经给出,为保证输出格式请不要随意更改)

🍂示例

输入: 234 456 789
输出:
[Customer{name=‘小红’, consumption=789},Customer{name=‘小军’,
consumption=456}, Customer{name=‘小明’,consumption=234}]

🍃题解

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Customer customer1 = new Customer("小明",scanner.nextInt());
        Customer customer2 = new Customer("小军",scanner.nextInt());
        Customer customer3 = new Customer("小红",scanner.nextInt());
        List<Customer> customers = new ArrayList<>();
        customers.add(customer1);
        customers.add(customer2);
        customers.add(customer3);
 
        //调用排序接口
        Collections.sort(customers);
 
        System.out.println(customers);
 
    }
}
 
class Customer implements Comparable<Customer>{
    private String name;
    private int consumption;
 
    public Customer(String name, int consumption) {
        this.name = name;
        this.consumption = consumption;
    }
 
    @Override
    public String toString() {
        return "Customer{" +
                "name='" + name + '\'' +
                ", consumption=" + consumption +
                '}';
    }
 
    //重写compareTo()方法,按照消费额从高到低排序
    @Override
    public int compareTo(Customer c){
        return c.consumption-consumption;
    }
 
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。