我正在编写一个程序,以查找n个字符串的交集字符。我编写了以下代码:
import java.util.ArrayList;
import java.util.Scanner;
public class TestJoin {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt(); // no of strings
String s1 =sc.next().toLowerCase();
ArrayList<Character> set1 = new ArrayList<Character>();
while(n-->1)
{
String s2 =sc.next().toLowerCase();
ArrayList<Character> set2 = new ArrayList<Character>();
for(char c : s1.toCharArray()) {
set1.add(c);
}
for(char c : s2.toCharArray()) {
set2.add(c);
}
set1.retainAll(set2);
for(char c : set1)
{
s1=Character.toString(c);
}
}
for(char c :set1)
System.out.println(c);
}
}
当我尝试打印字符时,输出结果不正确。
输入-
3
aabcde
abazx
yuabna
期望输出:aab 实际输出:aabb
aab
?为什么不是aba
或baa
? - Code-Apprentice