首页 > 其他分享 >HJ66 配置文件恢复

HJ66 配置文件恢复

时间:2023-07-27 16:55:05浏览次数:38  
标签:Map commands 匹配 String 配置文件 恢复 HJ66 command unknown

1. 题目

读题

 HJ66 配置文件恢复

 

考查点

 

2. 解法

思路

 

代码逻辑

 

具体实现

代码的主要步骤如下:

  • 首先,定义一个Map对象,使用HashMap类来创建,将配置命令作为键,将执行结果作为值,存储在Map中。
  • 然后,定义一个方法,用来判断输入的字符串是否能唯一匹配一个配置命令,并返回匹配的结果或者"unknown command"。
  • 接着,使用Scanner类来读取用户的输入,并调用判断方法,输出相应的结果。
  • 最后,关闭Scanner对象。

代码如下:

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

public class Main {

    // 配置命令的Map
    public static final Map<String, String> commands = new HashMap<>();

    // 初始化Map,将配置命令和执行结果存储在Map中
    static {
        commands.put("reset", "reset what");
        commands.put("reset board", "board fault");
        commands.put("board add", "where to add");
        commands.put("board delete", "no board at all");
        commands.put("reboot backplane", "impossible");
        commands.put("backplane abort", "install first");
    }

    // 判断输入的字符串是否能唯一匹配一个配置命令,并返回匹配的结果或者"unknown command"
    public static String matchCommand(String input) {
        // 如果输入为空,直接返回"unknown command"
        if (input == null || input.isEmpty()) {
            return "unknown command";
        }
        // 将输入的字符串按空格分割成单词数组
        String[] words = input.split(" ");
        // 如果单词数组的长度大于2,说明输入不合法,直接返回"unknown command"
        if (words.length > 2) {
            return "unknown command";
        }
        // 定义一个变量,用来记录匹配成功的次数
        int count = 0;
        // 定义一个变量,用来记录匹配成功的命令
        String match = null;
        // 遍历Map中的所有键值对,逐个比较
        for (Map.Entry<String, String> entry : commands.entrySet()) {
            // 获取当前键值对的键和值
            String key = entry.getKey();
            String value = entry.getValue();
            // 将当前键按空格分割成单词数组
            String[] cmd = key.split(" ");
            // 如果单词数组的长度和输入的单词数组的长度相同,才有可能匹配成功
            if (cmd.length == words.length) {
                // 定义一个标志变量,用来记录当前键是否匹配成功
                boolean flag = true;
                // 遍历单词数组,逐个比较
                for (int i = 0; i < words.length; i++) {
                    // 如果当前单词不是当前键单词的前缀,说明匹配失败,将标志变量设为false,并跳出循环
                    if (!cmd[i].startsWith(words[i])) {
                        flag = false;
                        break;
                    }
                }
                // 如果标志变量为true,说明匹配成功,将匹配次数加一,并记录当前键和值
                if (flag) {
                    count++;
                    match = value;
                }
            }
        }
        // 如果匹配次数为1,说明唯一匹配成功,返回对应键的值
        if (count == 1) {
            return match;
        } else {
            // 否则,说明没有匹配或者多次匹配,返回"unknown command"
            return "unknown command";
        }
    }

    public static void main(String[] args) {
        // 创建Scanner对象,用来读取用户的输入
        Scanner sc = new Scanner(System.in);
        // 循环读取用户的输入,直到遇到空行或者结束符
        while (sc.hasNextLine()) {
            // 读取一行输入,并去掉首尾空格
            String input = sc.nextLine().trim();
            // 调用判断方法,并输出结果
            System.out.println(matchCommand(input));
        }
        // 关闭Scanner对象
        sc.close();
    }
}

 

3. 总结

标签:Map,commands,匹配,String,配置文件,恢复,HJ66,command,unknown
From: https://www.cnblogs.com/shoshana-kong/p/17548701.html

相关文章

  • 配置文件的介绍,静态文件的配置,request对象请求方法,pycharm连接数据库,Django连接My
    配置文件的介绍#注册应用的INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.c......
  • SFP3012-ASEMI快恢复二极管参数、规格、尺寸
    编辑:llSFP3012-ASEMI快恢复二极管参数、规格、尺寸型号:SFP3012品牌:ASEMI芯片个数:2芯片尺寸:102MIL*2封装:TO-247恢复时间:65ns工作温度:-40°C~175°C浪涌电流:160*2正向电流:30A反向耐压:1200V正向压降:1.75V引脚数量:3漏电流:>10uaSFP3012二极管特性:SFP3012快恢复二极管广......
  • MUR2080CT/MUR2080CTR-ASEMI快恢复二极管对管
    编辑:llMUR2080CT/MUR2080CTR-ASEMI快恢复二极管对管型号:MUR2080CT/MUR2080CTR品牌:ASEMI封装:TO-220恢复时间:50ns正向电流:20A反向耐压:800V芯片大小:102MIL*2芯片个数:2引脚数量:3类型:快恢复二极管特性:快恢复、对管浪涌电流:200A正向压降:1.70V封装尺寸:如图工作温度:-50°C......
  • 服务器数据恢复-重建MDisk导致VDisk丢失的数据恢复案例
    服务器数据恢复环境:IBM某型号存储;Solaris操作系统,部署Oracle数据库。服务器故障:重建MDisk导致对应的存储池中的VDisk丢失,导致Solaris操作系统中的Oracle数据库无法使用。服务器数据恢复过程:1、将所有涉及到Oracle数据库的VDisk以只读模式连接到北亚企安备份服务器上,在只读模......
  • 配置文件
    一、参数配置化@Value注解通常用于外部配置的属性注入,具体用法为:@Value("${配置文件中的key}")二、Springboot的多种属性配置方式1.application.properties2.application.yml3.application.yaml三、常见配置文件格式对比1.XML2.properties3.yml/yaml四、yml1.基......
  • 从另一电脑复制下来的MYSQL的数据文件(包括FRM IBD)快速恢复到另一MYSQL服务器过程
    从另一电脑复制下来的MYSQL的数据文件(包括FRMIBD)快速恢复到另一MYSQL服务器过程:1.安装mysql最好相同的版本,安装Navicateformysql,连接相应的服务器2.安装mysql-utilities,地址:https://downloads.mysql.com/archives/utilities/以恢复td_gov_company_abnormal.frm为例:3.C......
  • .faust加密勒索数据库恢复---惜分飞
    联系:手机/微信(+8617813235971)QQ(107644445)标题:.faust加密勒索数据库恢复作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]有客户的win服务器被勒索病毒加密,里面运行有用友系统的Oracle数据库,加密提示为([email protected]):加密的......
  • 修改jar 配置文件
    解压jar包修改配置文件添加MANIFEST.MF并打成jar包(注意不压缩)执行jar包//复制jar包cp/data/single/job/champion-job-single-sms-1.0/champion-job-single-sms-1.0.jar.//解压jar包jar-xvfchampion-job-single-sms-1.0.jar//修改配置文件cdconfigs/vimdb.si......
  • MURF20100CTR-ASEMI快恢复对管封装、尺寸、参数
    编辑:llMURF20100CTR-ASEMI快恢复对管封装、尺寸、参数型号:MURF20100CTR品牌:ASEMI芯片个数:2芯片尺寸:102MIL*2封装:TO-220F恢复时间:50ns工作温度:-50°C~150°C浪涌电流:200A正向电流:20A反向耐压:1000V正向压降:1.10V引脚数量:2漏电流:>10uaMURF20100CTR二极管特性:MURF20100......
  • ASEMI代理海矽美快恢复二极管SFP6002的特性和应用分析
    编辑-Z二极管SFP6002是一种常见的电子元件,也被称为快恢复二极管。它具有快速恢复时间和低反向恢复电流的特点,适用于高频电路和开关电源等应用。 SFP6002的主要特性包括:1.快速恢复时间:SFP6002具有快速的恢复时间,可以在电流反向变化时迅速恢复到正常工作状态。这使得它在高频......