1

所以我从 Android/Java 编程开始。我想尝试在一个句子中找到一个单词。假设用户在 EditText 中输入了一个句子,即“我的朋友是牛仔”。该应用程序应从字符串数组中检测到单词牛仔。IE

 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 方法中,我不知道如何放置字符串数组。我希望有人能帮我解决这个问题。谢谢。

4

3 回答 3

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");
}
于 2013-08-25T18:35:28.723 回答
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;
}
于 2013-08-25T17:51:27.677 回答
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());
    }
});
于 2013-08-25T18:24:57.883 回答