2014-05-08 203 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()]); 
相關問題