我需要通过从s1中删除s2中出现的所有字符来生成s3字符串。
例如:
String s1 = "Computer";
String s2 = "mur";
结果必须是:"Copte"
我试图这样做:s3 = s1.replace(s2, "");
但它不起作用。我得到同一个词:computer
。
答案 0 :(得分:7)
你可以使用replaceAll女巫接受正则表达式:
String result = s1.replaceAll(String.format("[%s]", s2), "");// Output Copte
如果你的字符串包含一些特殊字符,例如} { ) ( . -
这个字符可以是正则表达式语法的一部分,在这种情况下你必须转义它们,你可以像这样使用Pattern.quote(s2)
:< / p>
String result = s1.replaceAll(String.format("[%s]", Pattern.quote(s2)), "");
答案 1 :(得分:1)
s1.replace(s2, "")
是s2
的子字符串时, s1
有效。但是,mur
不是Computer
的子字符串。由于m
u
r
是Computer
的子字符串,因此您可以单独删除它们。
String s1="Computer", s2="mur";
for (char c : s2.toCharArray()) { // create a char array [m, u, r]
s1 = s1.replace(String.valueOf(c), ""); // remove them separatly
}
System.out.print(s1);