//3.旧键盘上坏了几个键,再敲一段文字时,对应的字符不会出现,
// 现在给出应该输入的文字,以及实际被输入的文字,列出肯定坏掉的那些键。
public class BrokenKeyboard {
public static void main(String[] args) {
//4.最后对坏掉的键进行去重(set去重)
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()) {
//1.循环读入两个字符串,第一个是预期输出的内容,第二个是实际输出的内容
String expected = scanner.next();
String actual = scanner.next();
//2.把读入的两个字符串全部转换为大写
expected = expected.toUpperCase();
actual = actual.toUpperCase();
//3.先把实际输出的每个字符串都存入set
Set<Character> actualSet = new HashSet<>();
for (int i = 0; i < actual.length();i++) {
//注意,set中的元素不能重复,如果add的时候发现这个元素已经存在,add就失败了
//没有任何负面影响,不会因为失败就抛出个异常,也不会影响set中的内容
actualSet.add(actual.charAt(i));
}
//4.再遍历预期输出的字符串,看看那个字符在这个set中没有
Set<Character> brokenKeySet = new HashSet<>();
for (int i = 0;i < expected.length();i++) {
char c = expected.charAt(i);
if (actualSet.contains(c)){
//当前字符已经输出了,是一个好的键
continue;
}
//当前这个键没被实际输出,就是坏了的键
//输出格式非常重要,空格,换行,细节
//坏键去重
if (brokenKeySet.contains(c)) {
continue;
}
System.out.print(c);
brokenKeySet.add(c);
}//end for
}//end while
}
}
12-08
538
02-05
567
02-05
932