2012-05-24 171 views
9

我有这样的代码,其搜索的字符串数组,如果输入的字符串相匹配的字符串的第一个字符,返回结果:如何搜索整个字符串的特定单词?

for (int i = 0; i < countryCode.length; i++) { 
      if (textlength <= countryCode[i].length()) { 
       if (etsearch 
         .getText() 
         .toString() 
         .equalsIgnoreCase(
           (String) countryCode[i].subSequence(0, 
             textlength))) { 
        text_sort.add(countryCode[i]); 
        image_sort.add(flag[i]); 
        condition_sort.add(condition[i]); 
       } 
      } 
     } 

但我想那些字符串也是在输入字符串不仅在比赛中第一个字符,但也在字符串中的任何位置?这个怎么做?

+0

String有一个contains()方法 - 可以使用它。 – mcfinnigan

+0

是否可以在android中使用String.indexOf()? – Teg

+0

contains,indexOf()没有任何工作适合我:( – Reyjohn

回答

20

你必须寻找三通如果一个字符串包含子与否:

String string = "Test, I am Adam"; 
// Anywhere in string 
b = string.indexOf("I am") > 0;   // true if contains 

// Anywhere in string 
b = string.matches("(?i).*i am.*");  // true if contains but ignore case 

// Anywhere in string 
b = string.contains("AA") ;    // true if contains but ignore case 
+0

第一个为我工作,谢谢:) – Reyjohn

+1

更多像“b = string.indexOf(”我是“)!= -1“; – Shaun

0

尝试这个 -

etsearch.getText().toString().contains((String) countryCode[i]); 
0

使用以下命令:

public boolean contains (CharSequence cs) 

自:API等级1

确定此字符串包含的字符中的CharSequence传递的顺序。

Parameters 

cs要搜索的字符序列。

Returns 

真正如果字符序列包含在该字符串,否则

4

我没有足够的声誉点“在评论中回复,但有接受答案中的错误。 indexOf()在找不到子串时返回-1,所以它应该是:

b = string.indexOf("I am") >= 0; 
相关问题