2014-02-06 81 views
0

我的代碼需要一個字符串輸入,將它們分開並在其中找到一個特定的字母,然後將其打印出來。現在,我想確保同一個字只打印一次。例如,如果輸入是「她看起來不錯,她很友善。」那麼輸出將是「她\\不錯」這是我目前的代碼:如何檢查字符串中的同一個單詞?

Scanner kybd = new Scanner(System.in); 
String s = kybd.nextLine(); 
String[] arr = s.split(" ");  
for (String ss : arr) { 
    String []ary = {ss}; 
     for(int i = 0; i < ary.length; i++){ 
      int numindex = ss.indexOf("e"); 
      int numindex2 = ss.indexOf("E"); 
      if (numindex != -1){ 
       System.out.println(ary[i]); 
      } 
      else if(numindex2 != -1){ 
       System.out.println(ary[i]); 
      } 
     } 
    } 

任何建議如何做到這一點,將不勝感激。

回答

4

將詞語添加到HashSet<String>

然後通過此HashSet循環並打印出單詞。
即使有重複(當你提取它們時),
它們將被打印出一次。

HashSet將擺脫重複爲你
(它會這樣做,而你把它們插入到HashSet中)。

看到這裏的細節:HashSet

+0

爲了保持詞在句子的順序,一個ArrayList(用於存儲)和一個HashSet(用於測試前世)都可以使用;如果沒有效率問題(這裏可能沒有小列表),那麼List.contains就足夠存在測試(並且Set可以被跳過),並且比手動數組容易得多。 – user2864740

+0

不,維持順序我會使用TreeSet。至少在這種情況下。 http://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html –

+0

哦,好的。我誤解了你的觀點,或許你應該提到你的意思是在你的評論中插入順序。好吧,好的。 –

相關問題