题目描述:
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
解题思路1:最简单的思路就是两层循环遍历,将第一个字符串称为字符串1,将要删除的字符串被称为字符串2,每遍历到字符串2中的一个字符,就在字符串1中找到相同的字符,找到之后删除它,并将字符串1后面的字符整体向前移动移位。
代码示例:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
char[] ch=sc.nextLine().toCharArray();
String s=sc.nextLine();
for(int i=0;i<ch.length;i++){
if(!s.contains(String.valueOf(ch[i]))){
System.out.print(ch[i]);
}
}
}
}
思路二:通过两层循环,将字符串1遍历,遇到字符串2中的字符则分割字符串1
代码示例:
private static String deleteWord(String A,String B){
char[] b=B.toCharArray();
char[] a=A.toCharArray();
for(int i=0;i<B.length();i++){
for(int j=0;j<A.length();j++){
if(A.charAt(j)==B.charAt(i)){
A=A.substring(0,j)+A.substring(j+1);
}
}
}
return A;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String A=sc.nextLine();
String B=sc.nextLine();
System.out.println(deleteWord(A,B));
}