2013-08-26 57 views
0

到目前爲止,我已經得到了我的應用程序的工作,但我現在面臨一個問題。僅供參考,我的應用程序是關於獲取用戶輸入(用戶輸入一些句子,應用程序將查找含糊不清的單詞並顯示其含義)。顯示多個結果數組

這是我的代碼:

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."); 
} 

但每當I型一句話:

My friend is a cowboy. He is also fond of duck. 

它僅顯示第一個字即COWBOY。我如何顯示其他字詞?幫助是非常需要和讚賞的。提前致謝!

+0

您需要使用集合。 – SLaks

+0

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html – SLaks

回答

0

你可以在集合中添加的結果,例如一個SetList

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()); 
} 
+0

感謝您的關心,解釋代碼?而且我該如何去除括號? – Dunkey

+0

括號是通過HashSet.toString()方法添加的。您可以通過迭代設置的對象並自己創建它來自定義字符串。 – Guillaume

0

使用索引列表或在循環中構建您的輸出字符串,而不是僅存儲一個索引。

+0

嗨,你可以給我它的示例代碼?謝謝 – Dunkey

0
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()); 
+0

這裏有什麼用的StringBuilder? – Dunkey

+0

建立一個字符串。字符串是模棱兩可的詞的意思。很明顯,你可以做一些更好的附加(詞[我] +「:」+意義[我] +「\ n」); – Harry