2010-10-20 41 views
0

我用一個關鍵詞爪哇 - 使用關鍵字的一部分

的一部分,從收集的數據中選擇S個子集的要求搜索假設我有一個集合包括以下項,

"Pine Grosbeak" 
"House Crow" 
"Hume`s Leaf Warbler" 
"Great Northern Loon" 
"Long-tailed Duck" 
"Lapland Longspur" 
"Northern Gannet" 
"Eastern Imperial Eagle" 
"Little Auk" 
"Lesser Spotted Woodpecker" 
"Iceland Gull" 

當我提供一個搜索字符串爲「ro」後應該被過濾;

"House Crow" 
"Pine Grosbeak" 

(這類似於SQL 「LIKE ‘%ro%’ 「條款的東西)

可有一個人幫我在這?

回答

8

你可以簡單地做這樣的事情:

for (String s : strings) 
{ 
    if (s.contains(search)) 
    { 
     // match 
    } 
} 

如果你想不區分大小寫:

String lowerSearch = search.toLowerCase(); 
for (String s : strings) 
{ 
    if (s.toLowerCase().contains(lowerSearch)) 
    { 
     // match 
    } 
} 
+0

一個小小的懷疑。包含執行完整的字符串搜索或sql的「LIKE%RO%」,根據arraylist的源代碼,它不包含。 – 2010-10-20 08:54:41

+0

@Suresh它確實:例如,str.contains(「ro」)將匹配「rothing」,「thingro」,「ro」和「crothing」。 – KeatsPeeks 2010-10-20 08:56:23

1

迭代通過並使用 方法來篩選

List<String> lst = new ArrayList<String>(); 
lst.add("Pine Grosbeak"); 
lst.add("House Crow"); 
. 
. 
. 
for(String str:lst){ 
if(str.contains(keyword)){ 
System.out.println("matched : "+ str); 
} 
}