又是一道特别简单,而我又忽略了小细节而导致做不出来的题目。
总结一下小知识:
String类型可以不必转换为数组 ,就能用charAt(index)来取出字符串中的每个字符
String中自带的判断包含关系的函数contains(CharSequence s)的参数是CharSequence ,而不是char,所以需要正常取出来之后:charAt(index)+“”就可以啦
- indexOf():用来找指定索引位置的字符,也有可以做判断使用,找不到返回-1;
下面三种方式:
- contains
public class Main {
public static void main(String args[])throws Exception
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str1=br.readLine().trim();
String str2=br.readLine().trim();
StringBuffer bf=new StringBuffer(1024);
for(int i=0;i<str1.length();i++)
{
if(!str2.contains(str1.charAt(i)+""))
{
bf.append(str1.charAt(i));
}
}
System.out.println(bf.toString());
}
}
- indexOf()
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
String mline=br.readLine().toString();
String keywords=br.readLine().toString();
char[] chs=mline.toCharArray();
StringBuilder sb=new StringBuilder();
for(int i=0;i<chs.length;i++){
if(keywords.indexOf(chs[i])==-1)sb.append(chs[i]);
}
System.out.println(sb.toString());
}
}
- 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);
}
}
}