2013-08-25 69 views
1

所以我開始使用Android/Java編程。我想嘗試在一個句子中找到一個單詞。假設用戶在EditText中輸入了一句話,即「我的朋友是牛仔」。該應用程序應該從String數組中檢測到牛仔這個詞。即在字符串中取一個字Android/Java

String[] words = {"cowboy", "animal", "monster"}; 

這是我已經試過:

String[] words = {"cowboy", "animal", "monster"}; 
Boolean b; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    text = (EditText) findViewById (R.id.editText1); 
    view = (TextView) findViewById (R.id.textView1); 

    ok = (Button) findViewById (R.id.button1); 
    ok.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      String string = text.getText().toString(); 
      b = string.indexOf("cowboy") > 0; 
      view.setText(b.toString()); 
     } 
    }); 

} 

但它給我一個錯誤答案。我的代碼有什麼問題?在indexOf方法中,我不知道如何爲此字符串數組。我希望有人能幫我解決這個問題。謝謝。

回答

2

嘗試以下操作:

String[] words = {"cowboy", "animal", "monster"}; 
String s = "My friend is a Cowboy"; 
boolean check = false; 

for (int i = 0; i < words.length; i++) { 
    if (s.toLowerCase().contains(words[i].toLowerCase())) { 
     check = true; 
    } else { 

    } 
} 
if (check) { 
    System.out.println("Yes"); 
} else { 
    System.out.println("No"); 
} 
+0

哇這個作品哥們!謝謝。 – Dunkey

+0

不客氣。 :) – fida1989

1

您可以嘗試遍歷數組,並查看基數字符串是否包含數組中的所有元素。它看起來像這樣:

private boolean contains(final String string, final String[] strings){ 
    for(final String s : strings) 
     if(!string.toLowerCase().contains(s.toLowerCase())) 
      return false; 
    return true; 
} 
+0

嗨,您立即作出反應,我似乎由於無法弄清楚如何添加代碼來挖掘。謹慎解釋?謝謝。 – Dunkey

+0

那麼,首先在你的代碼中添加該方法,然後而不是'string.indexOf ....'只是做'b = contains(string,words);'如果字符串包含數組中的所有元素,則返回true,否則假。 –

+0

@Dunkey見編輯。 –

0

你可以試試這個。從我的響度單位發送這樣的語法錯誤包括;-)

@Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     String string = text.getText().toString(); 
     boolean hit == false; 
     // b = string.indexOf("cowboy") > 0; 
     for (int i=0;i<words.length;i++){ 
      if (string.indexOf(words[i])!=-1){ 
       hit == true; 
       break; 
      } 
     } 
     view.setText(b.toString()); 
    } 
}); 
+0

您使用的是什麼手機和應用編輯器? – gunar

+0

星系標籤10.我用鉻瀏覽器來寫這個。 –

+0

要試試這個。謝謝。 – Dunkey

相關問題