输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”使用java
时间: 2024-09-12 19:05:44 浏览: 37
要实现这个功能,我们可以采用以下步骤:
1. 将第二个字符串转换为一个字符集,例如使用HashSet集合来存储第二个字符串中的所有字符,这样可以利用HashSet的O(1)时间复杂度的查找特性。
2. 遍历第一个字符串中的每个字符,检查这个字符是否存在于第二个字符串的字符集中。
3. 如果当前字符不在第二个字符串的字符集中,则保留该字符;否则,跳过这个字符。
4. 将保留下来的字符拼接成新的字符串。
下面是使用Java实现的示例代码:
```java
import java.util.HashSet;
import java.util.Set;
public class StringDeletion {
public static String removeCharacters(String str, String charsToRemove) {
Set<Character> removeSet = new HashSet<>();
// 将需要删除的字符存入HashSet中
for (char ch : charsToRemove.toCharArray()) {
removeSet.add(ch);
}
// 构建新的字符串,不包含需要删除的字符
StringBuilder result = new StringBuilder();
for (char ch : str.toCharArray()) {
if (!removeSet.contains(ch)) {
result.append(ch);
}
}
return result.toString();
}
public static void main(String[] args) {
String str = "They are students.";
String charsToRemove = "aeiou";
System.out.println(removeCharacters(str, charsToRemove));
}
}
```
运行这段代码,会输出处理后的字符串`Thy r stdnts.`。
阅读全文