2014-04-28 76 views
0

標題字符串到字符串的一部分比較可能有點混淆或誤導性的,但我想比較一個字符串:裏面一個ArrayList

String mystring = "abc"; 

,然後嘗試將其與每一個比較包含字符串中的一個ArrayList

ArrayList<String> array = new ArrayList<String>(); 
array.add("The first letters of the alphabet are abc"); 
array.add("abc"); 
array.add("Alphabet"); 
array.add("Nothing"); 

但(我不能肯定)似乎包含是真的只有這兩個字符串的匹配,而不是如果單詞或詞組是裏面的字符串。

如何將所需字符串與字符串ArrayList內的「短語」進行比較?

+2

只要它是區分大小寫的,你可以遍歷數組並使用'.contains(mystring);' – AntonH

+0

@AntonH考慮發佈它作爲答案。 –

+0

@LuiggiMendoza我不想,因爲他沒有指定它是否需要區分大小寫,在這種情況下,我的答案是不正確的。 – AntonH

回答

1

要檢查您要求的內容,您必須遍歷數組中包含的值,並檢查它們是否包含包含的您要檢查的字符串的值。

for (String fromArray : array) { 
    if (fromArray.contains(mystring)) { 
     // put your code here 
    } 
} 

該方法區分大小寫。要解決這個問題,您可以將字符串更改爲小寫(使用toLowerCase()方法),或者使用專門設計的庫。一個這樣的庫是Apache Commons庫。

http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/StringUtils.html#containsIgnoreCase%28java.lang.CharSequence,%20java.lang.CharSequence%29

如果你想查詢的,而不是是否包含數組元素,而不是比賽要檢查它,你將使用matches()方法的字符串。

文檔鏈接:

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

Apache commons StringUtils

-1

您需要通過數組列表中的所有元素進行迭代,然後需要在使用方法

for (String str : array){ 
      if(str.contains(mystring)){ 
       System.out.println(str + " Conatins" + mystring); 
      } 
     } 
+0

爲什麼downvoted的任何意見?? – Gautam

0

很簡單檢查。

您在ArrayList上使用Iterator。

for(String s: array): 
    if(s.toLowerCase().contains(myString.toLowerCase())) { //find if such a substring exits within each string 
     //do something 
    } 
} 

如果您不想檢查區分大小寫,您可以從行中刪除toLowerCase()。

我希望你知道toLowerCase()所做的事情,並將它放在代碼中並不會對你有所幫助。

1

試試這個

// check if string is exist in array 
if(array.Contains("YourString")) 
{ 
// if contain then u can use this or do operations 
Response.Write("YourString is available in array"); 
} 

這將幫助你