2011-10-19 32 views
1

好吧,我有一個LinkedList,我有一個字符串。我想檢查字符串是否包含在任何LinkedList元素中。 例如: 「萬歲」Java:如何檢查一個字符串是否是任何LinkedList元素的一部分?

String a = "apple"; 
String listelement = "a bunch of apples"; 
LinkedList list = new LinkedList(); 
list.add(listelement); 
if(list.containsany(a){ 
    System.out.println("Hooray!"); 
} 

會導致印刷

顯然list.containsany不是一個真正的LinkedList方法,我只是用它來達到這個目的。

那麼我該如何模擬我的例子?

感謝

回答

9
String a = "apple"; 
String listelement = "a bunch of apples"; 
List<String> list = new LinkedList<String>(); 
list.add(listelement); 
for(String s : list){ 
    if(s.contains(a)){ 
    syso("yes"); 
    } 
} 

這應該這樣做,爲了找到一個節點包含一個特定的字符串,你需要通過所有節點進行迭代。如果你只想要1個實例,你可以打破循環。

你也想使用泛型。看代碼。否則你將不得不將節點轉換爲一個字符串。

+0

這是否工作,如果鏈表中有字符串和對象? –

+0

用於閱讀該問題。 :) –

+1

這隻適用於字符串。如果您使用的是對象,則需要將其施放。你不能將對象存儲到'LinkedList ' – DarthVader

1
String a = "apple"; 
    String listelement = "a bunch of apples"; 
    LinkedList<String> list = new LinkedList<String>(); 
    list.add(listelement); 
    Iterator<String> li = list.iterator(); 
    while (li.hasNext()) { 
     if (li.next().contains(a)) { 
      System.out.println("Hooray!"); 
     } 
    } 
0

你將不得不跨越列表進行迭代,並檢查每個節點的值,看它是否是一個字符串。如果你可以保證鏈表的所有成員都是字符串,那麼使用Java的泛型來強制它們全部是字符串可能會有所幫助。

 /* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package javaapplication1; 

import java.util.LinkedList; 

public class JavaApplication1 { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     String a = "apple"; 
     String listelement = "a bunch of apples"; 
     LinkedList<String> list = new LinkedList<String>(); 
     list.add(listelement); 
     list.add(new String("boogie")); 
     for (String s : list) { 
      if (s.contains(a)) { 
       System.out.println("yes," + s + " contains " + a); 
      } else { 
       System.out.println("no," + s + " does not contain " + a); 
      } 
     } 
    } 
} 
+0

這很完美!但是有一個問題,如果LinkedList不包含任何元素,那麼「for」語句不會執行「else」。這是我可以修復的東西嗎? – Blackvein

+0

當然,只要將它包圍在if語句中,該語句檢查列表的大小是否爲0,並在這種情況下打印出適當的內容。 (如果你需要幫助,Javadocs是你的朋友) –

相關問題