Java 显示多结果数组

Java 显示多结果数组,java,android,Java,Android,到目前为止,我的应用程序已经运行了,但我现在面临一个问题。仅供参考,我的应用程序是关于获取用户输入的(用户在某些句子中键入,应用程序将查找歧义词并显示其含义) 这是我的代码: final String[] words = {"cowboy", "animal" , "monster", "duck"}; final String[] meanings = { "meaning1", "meaning2", "meaning3", "meaning4" }; private void initC

到目前为止,我的应用程序已经运行了,但我现在面临一个问题。仅供参考,我的应用程序是关于获取用户输入的(用户在某些句子中键入,应用程序将查找歧义词并显示其含义)

这是我的代码:

final String[] words = {"cowboy", "animal" , "monster", "duck"};
final String[] meanings = { "meaning1", "meaning2", "meaning3", "meaning4" };

private void initControls() {
// TODO Auto-generated method stub
text = (EditText) findViewById (R.id.editText1);

view = (TextView) findViewById (R.id.textView1);

clear = (Button) findViewById (R.id.button2);

clear.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        text.setText("");
        view.setText("");
    }
});

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

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        findAmbiguousWord();
    }   
});
}

private void findAmbiguousWord(){
String string = text.getText().toString();

int index = 0;

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

view.setText(check ? meanings[index] : "No ambiguous word/s found.");
}

它只显示第一个单词,即牛仔。如何显示其他单词?帮助是非常需要和感激的。提前谢谢

使用索引列表或在循环中生成输出字符串,而不是只存储一个索引。

StringBuilder ambiguousWords=new StringBuilder();
 StringBuilder ambiguousWords = new StringBuilder();
 for (int i = 0; i < words.length; i++) {
    if (string.toLowerCase().contains(words[i].toLowerCase())) {
        check = true;
        ambiguousWords.append(meanings[i]);
    } 
 }

 view.setText(check ? "No ambiguous word/s found." : ambiguousWords.toString());
for(int i=0;i
您可以在集合中添加结果,例如
集合
列表

private void findAmbiguousWord(){
String string = text.getText().toString();
// create a set to store the results
Set<String> result = new HashSet<String>();
for (int i = 0; i < words.length; i++) {
    if (string.toLowerCase().contains(words[i].toLowerCase())) {
        // ambiguous word, we need its meaning!
        result.add(meanings[i]);
    } 
}

// display the results if there are some
view.setText(result.isEmpty() ? "No ambiguous word/s found." : result.toString());
}
private void findAmbiguousWord(){
String String=text.getText().toString();
//创建一个集合来存储结果
Set result=new HashSet();
for(int i=0;i
您需要使用集合。谢谢您的帮助,要不要解释一下代码?以及如何删除括号?括号是通过HashSet.toString()方法添加的。您可以通过在集合对象上迭代来自定义字符串,并自己创建它。在这里使用StringBuilder有什么用?构建字符串。字符串表示歧义词的含义。显然,您可以做一些更好的事情,比如追加(单词[i]+“:“+含义[i]+”\n”);
private void findAmbiguousWord(){
String string = text.getText().toString();
// create a set to store the results
Set<String> result = new HashSet<String>();
for (int i = 0; i < words.length; i++) {
    if (string.toLowerCase().contains(words[i].toLowerCase())) {
        // ambiguous word, we need its meaning!
        result.add(meanings[i]);
    } 
}

// display the results if there are some
view.setText(result.isEmpty() ? "No ambiguous word/s found." : result.toString());
}