我有两个字符串,其中都有一组数字 我希望交集是他们之间共同的数字。 所有这些都是字符串
ArrayList<String> list1 = new ArrayList<String>();
list1.add(temp1.get(0));
ArrayList<String> list2 = new ArrayList<String>();
list2.add(temp1.get(1));
ArrayList<String> intersection = new ArrayList<String>(list1);
intersection.retainAll(list2);
System.out.println ( "Charstic sets Intersection ::: "+intersection );
其中:
temp1 is : [[1, 2, 6], [1, 3, 5] ]
temp1.get(0) is :[1, 2, 6]
temp1.get(1) is :[1, 3, 5]
我想要得到以下内容:
[1]
但我得到一个空集:
[]
答案 0 :(得分:0)
我确定问题在于temp1是 ArrayList of Integers 的 ArrayList of strings ,这就是为什么你的十字路口是空的。因此,首先将字符串转换为整数的ArrayList可能是个好主意。
我写了一个函数来做一个小例子(称为&#34; test.java&#34;):基本上你用逗号分割你的字符串并将你的值转换成整数,然后你可以调用ArrayList&#39 ; s intersection():
import java.util.ArrayList;
public class test {
private static ArrayList<Integer> stringToArrayList(String s){
ArrayList<Integer> ans = new ArrayList<Integer>();
for (String t : s.split(",")) {
ans.add(Integer.parseInt(t));
}
return ans;
}
public static void main(String[] args) {
ArrayList<Integer> t1 = stringToArrayList("1,2,6");
ArrayList<Integer> t2 = stringToArrayList("1,3,5");
ArrayList<Integer> intersection = new ArrayList<Integer>(t1);
intersection.retainAll(t2);
System.out.println ( "Charstic sets Intersection ::: "+intersection );
}
};
输出:
Charstic sets Intersection ::: [1]
如果代码不清楚或者这是否适合您,请告诉我们:)