输入两个字符串,分两行输入,找出这两个字符串的共同元素。
方法一:使用一个双重循环
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class App {public static String search(String str,String strings){char[]ch = str.toCharArray();String temp = "";List list = new ArrayList<>();for(int i=0;i<ch.length;i++){if(!list.contains(ch[i])){list.add(ch[i]);temp = temp+ch[i];}}char[]tempChars = temp.toCharArray();char[]chars = strings.toCharArray();String tempChar = "";for (int m=0;m<temp.length();m++){for (int n=0;n<chars.length;n++){if(tempChars[m] == chars[n]){tempChar = tempChar+tempChars[m];break;}}}return tempChar;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();String strings = sc.nextLine();String outStr = search(str,strings);System.out.println(outStr);}
}
方法二:使用Hashset
import java.util.*;public class App {public static String search(String str,String strings){Set<String> set1=new HashSet<>();Set<String> set2=new HashSet<>();for(int i=0;i<str.length();i++){set1.add(str.substring(i, i+1));set2.add(strings.substring(i, i+1));}//找出两个元素的交集set1.retainAll(set2);String[] string = set1.toArray(new String[set1.size()]);StringBuffer stringBuffer = new StringBuffer();for (String s: string) {stringBuffer.append(s);}String sb = new String(stringBuffer);return sb;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();String strings = sc.nextLine();String outStr = search(str,strings);System.out.println(outStr);}
}