public static void main(String[] args) {
Scanner in=new Scanner(System.in);
while(in.hasNextLine()){
String s1=in.nextLine();
String s2=in.nextLine();
String ret=del(s1,s2);
System.out.println(ret);
}
}
public static String del(String s1,String s2){
StringBuilder stringBuilder=new StringBuilder();
for(int i=0;i<s1.length();i++){
char c=s1.charAt(i);
if(s2.contains(String.valueOf(c))){
continue;
}
else{
stringBuilder.append(c);
}
}return stringBuilder.toString();
}
这道题的主要思路是定义一个方法,遍历第一个字符串,如果第二个字符串包含第一个字符串的字符,则跳过.如果不包含,就用一个StringBuilder来接收.整体思路不难,但是我在写的过程中遇到了一个值得注意的点.
contains方法和indexOf方法
这是除了indexOf之外的另一个查询字符是否在另一个字符串中的方法,但是与indexOf不同的是,indexOf方法的参数列表是字符char c,而contains方法的参数列表是字符串,不可以用字符类型.
因此,在遍历出来字符串s1的各个字符后,要用Stirng.valueOf方法将char c转换成字符串类型.日后的使用中,要注意分辨indexOf和contains方法的区别.