String [] TxtStr = new String[] {"bob","alan", "sam"};
List<String> stringList = new ArrayList<String>(Arrays.asList(TxtStr));
String [] TxtStr2 = new String[] {"bob","alan"};
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr));
stringList.removeAll(stringList2);
String[] bTxtStr = stringList.toArray(new String[stringList.size()]);
String output = "nnn";
for (int x=0; x<bTxtStr.length; x++){
output +=bTxtStr[x];
}
目前这是一个Android项目的一小部分,我正在研究我必须比较2 String []的内容。
我遇到了很多问题,所以我开始使用2个String []的简单案例,分别包含2个和3个元素。在初始化String []之后,我将它们转换为ArrayLists并执行removeAll函数,理想情况下应删除元素&#34; bob&#34;和&#34;阿兰&#34;从第一个列表到最终输出。
BTW使用remove to stringList.remove(&#34; bob&#34;)在消除ArrayList中的特定字符串方面起作用。只是想知道我能做些什么来确保stringList.removeAll(....)有效。
感谢您提前提供任何帮助。
答案 0 :(得分:2)
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr));
你应该使用TxtStr2
:
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr2));
答案 1 :(得分:2)
List<String> stringList = Arrays.asList("bob","alan", "sam");
List<String> stringList2 = Arrays.asList("bob","alan");
String mergedString = stringList.stream().filter(string ->!stringList2.contains(string)).collect(Collectors.joining(","));
System.out.println("Merged String: " + mergedString);
答案 2 :(得分:0)
您可能最终会删除所有内容,因为您创建的列表基于相同的数组。改变
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr);
到
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr2);