2013-02-18 49 views
1

我試圖從輸入中刪除重複項。有很多方法可以做到這一點,使用ArrayList,LinkedList,哈希設置等。我知道如何做到這一點,如果輸入是作爲說{蘋果「,」球「,」蘋果「,」貓「},指定在問題中。 但我想用掃描儀類和輸入說一行,並希望刪除字符中的重複項,或刪除重複的單詞。你有一個簡單的方法來做到這一點。 我已經包含了我的早期方案的工作代碼。刪除用戶輸入的重複單詞或字符

public static void main(String[] args) { 
     // TODO code application logic here 

     Scanner scan= new Scanner(System.in); 
     String[] str= {"a", "b", "c", "a"}; 
     System.out.println("enter text"); 
     List<String> l= 
       Arrays.asList(str); 
     System.out.println(l); 
     Set<String> set= new HashSet<String>(l); 
     System.out.println(set); 
    } 
+0

有*應*是一個簡單的方法..檢查AVB Java數據結構 – Coffee 2013-02-19 00:00:16

+2

什麼是「AVB」是什麼意思? - 新手 – user2085145 2013-02-19 03:35:37

+0

- 可用。雅我knoooooow – Coffee 2013-02-19 15:04:12

回答

1

下面的操作將每個單詞,並把它添加到HashSet的(這會自動刪除的DUP,你想通了),當一個字將停止!並打印出一套..

Scanner scan= new Scanner(System.in); 
    HashSet<String> set = new HashSet<String>(); 
    String s; 
    while (!(s = scan.next()).equals("!")) { 
     set.add(s); 
    } 
    System.out.println(set); 
+0

謝謝你,這有助於。 – user2085145 2013-02-19 03:39:45

+0

一些如何我無法得到這個打印設置。我甚至嘗試過「scan.hasNext()」。也用於每個循環。我究竟做錯了什麼? – user2085145 2013-02-19 13:59:29

+0

hasNext()可以被阻塞 - 即它會等待,直到它有輸入,然後返回true - 所以你不會離開循環。您需要以某種方式打破循環,例如,當您鍵入一個打破它的單詞時。 – ddmps 2013-02-19 14:05:10