题解 | #配置文件恢复#

配置文件恢复

https://www.nowcoder.com/practice/ca6ac6ef9538419abf6f883f7d6f6ee5

妙用str.startsWith(str1);  判断str字符串是否是根绝str1开头的,是返回true,否者返回false;
通过map存储命令对应的执行。
再通过set 存储命令数组,如果有空格,则会存进来两个。然后直接遍历判断。
再通过sgin标识,判断是否只匹配了一个命令,如果匹配多个命令,则输出 unknown command


import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
//         添加命令
        HashMap<String,String> map = new HashMap<String,String>();
        map.put("reset","reset what");
        map.put("reset board","board fault");
        map.put("board add","where to add");
        map.put("board delete","no board at all");
        map.put("reboot backplane","impossible");
        map.put("backplane abort","install first");
//         添加命令视图
        HashSet<String[]> set = new HashSet();
        for(String str : map.keySet() ){
            set.add( str.split(" ") );
        }
        
        while (in.hasNextLine()) { 
            
            String[] a = in.nextLine().split(" ");
            int sgin = 0;
            String res = "";
            for(String[] str : set){
                if(str.length == a.length  && str.length ==1){
                    if(str[0].startsWith(a[0]) ){
                        res = map.get(str[0]);
                        sgin++;
                    }
                }
                
                if(str.length == a.length  && str.length ==2){
                    if(str[0].startsWith(a[0]) && str[1].startsWith(a[1]) ){
                        res = map.get(str[0] + " "+ str[1]);
                        sgin++;
                    }
                }
            }
            if(sgin != 1){
                System.out.println("unknown command");
            }else{
                 System.out.println(res);
            }
            
        }
    }
}

#22届#
全部评论

相关推荐

12-20 11:26
复旦大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务