输入两个字符串,分两行输入,找出这两个字符串的共同元素。
方法一:使用一个双重循环
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 {
//str和strings的长度不确定
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));
}
for(int j=0;j<strings.length();j++){
set2.add(strings.substring(j, j+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);
char[]chars = outStr.toCharArray();
Arrays.sort(chars);
System.out.println(new String(chars));
}
}