2012-05-24 18 views
9

Ben bir dize dizisi arar ve giriş dizesi bir dizenin 1 karakterleri eşleşirse sonuç döndürür bu kodu:Belirli bir sözcük için tüm dizgiyi nasıl ararım?

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]); 
       } 
      } 
     } 

Ama girdi dizesi içinde sadece maçları nerede ben de bu dizeyi almak istiyorum İlk karakterler ama aynı zamanda dizenin herhangi bir yerinde? Bu nasıl yapılır? contains(CharSequence) yöntemle

+0

Dize, bir() yöntemine sahiptir - bunu kullanabilirsiniz. – mcfinnigan

+0

String.indexOf() android olarak kullanılabilir mi? – Teg

+0

içerir, indexOf() hiçbir şey benim için çalışıyor :( – Reyjohn

cevap

20

bir dize alt dize ya da değil içeriyor olsa aramak için üç yol var: Şunları kullanabilirsiniz

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

Birincisi benim için çalışıyor, teşekkürler :) – Reyjohn

+1

Daha çok "b = string.indexOf (" I ")! = 1;" – Shaun

3

Kontrol deneyin bu-

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

Kullanım:

public boolean contains (CharSequence cs) 

beri: Bu dize CharSequence geçti karakterlerin dizisi içeriyorsa API Seviye 1

belirler.

Parameters 

cs karakter dizisi aramak için.

Returns 

gerçek karakter dizisi bu dizede bulunan, aksi takdirde yanlış

4

Ben 'ün noktaları' yorumlarında cevap, ama orada yeterli değildir kabul edilen cevapta bir hata. indexOf(), substring bulamadığında -1 değerini döndürür, bu nedenle şu şekilde olmalıdır:

b = string.indexOf("I am") >= 0; 
İlgili konular