1 题目
2 代码
2.1 第一版
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class A1050 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[] str01 = br.readLine().toCharArray();
char[] str02 = br.readLine().toCharArray();
int[] hash = new int[128];
for (int i = 0; i < str02.length; i++) {
hash[str02[i]] = 1;
}
for (int i = 0; i < str01.length; i++) {
if (hash[str01[i]] == 0)
System.out.print(str01[i]);
}
}
}
2.2 第二版
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class A1050 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str01 = br.readLine();
char[] str02 = br.readLine().toCharArray();
for (char c : str02) {
str01 = str01.replaceAll(String.valueOf(c), "");
}
System.out.println(str01);
}
}
3 要点
(1)String.replaceAll()源码分析:
/**
* 将此字符串中与给定正则表达式匹配的每个子字符串替换为给定的替换项。
* 调用str.replaceAll(regex, repl)形式的这个方法会产生与表达式完全相同的结果Pattern.compile(正则表达式).matcher (str) .replaceAll (repl)
*
* @param regex 要匹配此字符串的正则表达式
* @param replacement 每个匹配项要替换的字符串
*
* @return 由此产生的字符串
*
* @throws PatternSyntaxException 如果正则表达式的语法无效
*/
public String replaceAll(String regex, String replacement) {
return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}
其使用的是Pattern.compile(regex).matcher(this).replaceAll(replacement)
。