【⽜客⽹OJ题】删除公共字符
问题描述:
输⼊两个字符串,从第⼀字符串中删除第⼆个字符串中所有的字符。
例如,输⼊”They are students.”和”aeiou”,则删除之后的第⼀个字符串变成”Thy r stdnts.”
分析:
有三种办法(我知道的就三种):
1. 利⽤map集合,将要删除的字符串的存进map中,遍历原来的字符串,如果字符串中的字符在map中有,那么就进⾏下⼀次循环,否则就直接打印。
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String s = sc.nextLine();
int index = 0;
Map<Integer,Character> map = new TreeMap<>();
for(int i = 0;i<s.length();i++){
map.put(index,s.charAt(i));
index++;
}
for(int i = 0;i<str.length();i++){
if(!ainsValue(str.charAt(i))){
System.out.println(str.charAt(i));
}
}
}
}
2.⽤replaceAll替换,replaceAll⽅法传⼊的第⼀个参数是正则表达式,字符串形式的正则表达式是[]。
import java.util.Scanner;
public class Main {
public static void main(String[] args)  {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String s1 = sc.nextLine();
String s2 = sc.nextLine();
String pattern = "[" + s2 + "]";
String result = s1.replaceAll(pattern, "");
System.out.println(result);
}
}
}
3.下⾯将“They are students.”称为字符串1,将“aeiou”称为字符串2。每遍 历到字符串2中的⼀个字符,就在字符串1中到相同的字符,到之后删除它,并将字符串1后⾯的字符整 体向前移动1位。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);    while(sc.hasNext()){
char[] ch = sc.nextLine().toCharArray();      String str = sc.nextLine();
for(int i=0;i<ch.length;i++){
if(!ains(String.valueOf(ch[i]))){    System.out.print(ch[i]);
}
replaceall()}
}
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。