2011-06-28 279 views
6

如何搜索字符串數組項目元素中的特定文本?以下是xml文件的一個例子。字符串數組名稱是android。我有一些項目內的字符串數組。現在我想搜索「軟件」這個詞。請告訴我該怎麼做?在字符串數組項目元素中搜索字符串

<?xml version="1.0" encoding="utf-8"?><resources> 
<string-array name="android"> 
    <item>Android is a software stack for mobile devices that includes an operating system, middleware and key applications.</item> 
    <item>Google Inc. purchased the initial developer of the software, Android Inc., in 2005..</item> 
</string-array> 

回答

18

我認爲你要做到這一點的代碼。 api中沒有什麼可以在整個String數組上進行文本匹配;你需要一個元素做一次:

String[] androidStrings = getResources().getStringArray(R.array.android); 
for (String s : androidStrings) { 
    int i = s.indexOf("software"); 
    if (i >= 0) { 
     // found a match to "software" at offset i 
    } 
} 

當然,你可以使用一個匹配器和模式,或者你可以通過使用索引數組迭代,如果你想知道的數組中的位置一場比賽。但這是一般的方法。

19

該方法具有更好的性能:

String[] androidStrings = getResources().getStringArray(R.array.android); 
if (Arrays.asList(androidStrings).contains("software") { 
    // found a match to "software"   
} 

Arrays.asList().contains()比使用for循環更快。

+11

這不會做OP想要的,哪些(基於發佈的例子)是找到包含_inctain_單詞「software」的列表元素。這隻會找到_equal_(全部)單詞「軟件」的元素。此外,'List.contains'在內部使用循環;它不會比在你自己的代碼中使用循環更快。另外你還需要額外的在'String []''周圍創建'List'包裝。 –

+0

它可以用於自定義對象列表嗎? – ralphgabb