注意单词别写错了。。。。。
配置文件恢复
https://www.nowcoder.com/practice/ca6ac6ef9538419abf6f883f7d6f6ee5
package com.crl.huawei.h66;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main2 {
static Map<String, String> map;
final static String error = "unknown command";
static {
// 初始化数据
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("reset", "reset what");
hashMap.put("reset board", "board fault");
hashMap.put("board add", "where to add");
hashMap.put("board delete", "no board at all");
hashMap.put("reboot backplane", "impossible");
hashMap.put("backplane abort", "install first");
map = hashMap;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) {
String line = in.nextLine();
String[] command = line.split(" ");
int count = 0;
ArrayList<String> keyList = new ArrayList<>();
for (Map.Entry<String, String> entry : map.entrySet()) {
boolean ok = true;
String key = entry.getKey();
String[] split = key.split(" ");
if (split.length != command.length) {
continue;
}
for (int i = 0; i < command.length; i++) {
// 数组拿出来的元素
String regx = command[i];
String string = split[i];
// 注意:如resetgg boardkk是不合法的
if (regx.length() > string.length()){
ok = false;
break;
}
int regxIndex = 0;
int stringIndex = 0;
while (true) {
// 循环到有其中之一比较完了,结束循环
if (regxIndex == regx.length() || stringIndex == string.length()) {
break;
}
// 从0开始比较两个字符串
if (regx.charAt(regxIndex) != string.charAt(stringIndex)) {
ok = false;
break;
}
regxIndex++;
stringIndex++;
}
}
if (ok) {
count++;
keyList.add(key);
}
}
if (count != 1){
System.out.println(error);
}else {
System.out.println(map.get(keyList.get(0)));
}
}
}
}

