2014-05-08 129 views
0

这是我的jsp页面。如何从两个数组中删除重复的字符串?

<body> 
    <% 

     String a[] = {"PAK", "ENG", "IND", "USA"}; 
     String b[] = {"ON", "UK","IND","ENG","SA"}; 
     String[] Filterjoined = ObjectArrays.concat(a, b, String.class); 
     out.println(Arrays.toString(Filterjoined)); 
     StringBuilder sb = new StringBuilder(); 
     for (int i = 0; i < Filterjoined.length; i++) { 
      boolean found = false; 
      for (int j = i + 1; j < Filterjoined.length; j++) { 
       if (Filterjoined[j].equals(Filterjoined[i])) { 
        found = true; 
        break; 
       } 
      } 
      if (!found) { 
       if (sb.length() > 0) { 
        sb.append(','); 
       } 
       sb.append(Filterjoined[i]); 
      } 
     } 
     out.println("<br>"); 
     out.println(sb); 
    %> 
</body> 

这里我得到输出PAK,USA,ON,UK,IND,ENG,SA但我需要从两个阵列中删除字符串,如果字符串复制了。即期望的输出是:PAK,USA,ON,UK,ENG,SA,因为IND在两个阵列中都有重复,所以我需要将其删除,其余元素必须显示。感谢您的回复

+2

简单的方法是创建集,并把所有的项目在里面。 Set不存储重复项。 –

+0

这两个阵列中是不是“ENG”? –

+0

yes George Acev – tajMahal

回答

0

的Java已经有您需要做的任务,而不第三方库等使用如下解决一切:

String a[] = {"PAK", "ENG", "IND", "USA"}; 
String b[] = {"ON", "UK","IND","ENG","SA"}; 

/* Convert your arrays to lists */ 
final List<String> listA = Arrays.asList(a); 
final List<String> listB = Arrays.asList(b); 

/* Create another list holding 'duplicate' elements */ 
final List<String> duplicatesList = new ArrayList<String>(listA); 
duplicatesList.retainAll(listB); 

/* Finally create a resulting list as a + b - duplicates */ 
final List<String> result = new ArrayList<String>(listA); 
result.addAll(listB); 
result.removeAll(duplicatesList); 

System.out.println(result); 
+0

谢谢你,工作优良 – tajMahal

+0

如何从结果字符串中删除括号[,] – tajMahal

+0

你不能从java中的数组中删除值,因为数组是固定大小的。在你的情况下,你可以重新分配你的数组: 'final List newA = new ArrayList (listA);',then'newA.removeAll(duplicatesList);'最后'a = newA.toArray(a);' 但我建议你使用列表而不是数组,如果这样的操作经常出现在你的代码中...... –

4

这是如何使用该设置。

Set<String> joined = new HashSet<String>(Arrays.asList(a)); 
joined.addAll(Arrays.asList(b)); 
String[] joinedArray = joined.toArray(new String[joined.size()]); 
相关问题