我需要从字符串中删除停用词。我使用以下代码删除停用词并在textView中设置最终输出。但是当我运行代码时,它总是给出输出“bug”。换句话说,它总是给我最后一个字符串作为输出。请检查我的代码和帮助!
public class Testing extends Activity {
TextView t1;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.testing);
t1= (TextView)findViewById(R.id.textView1);
String s="I love this phone, its super fast and there's so" +
" much new and cool things with jelly bean....but of recently I've seen some bugs.";
String[] words = s.split(" ");
ArrayList<String> wordsList = new ArrayList<String>();
Set<String> stopWordsSet = new HashSet<String>();
stopWordsSet.add("I");
stopWordsSet.add("THIS");
stopWordsSet.add("AND");
stopWordsSet.add("THERE'S");
for(String word : words)
{
String wordCompare = word.toUpperCase();
if(!stopWordsSet.contains(wordCompare))
{
wordsList.add(word);
}
}
for (String str : wordsList){
System.out.print(str+" ");
t1.setText(str);
}
}
答案 0 :(得分:2)
t1.setText(str);
表示它不关心以前的文字是什么。它将最后一个放在循环中。因此,请改用append
。
t1.append(str);
或者将每个str
附加到单个字符串,并在循环后在TextView
中设置该字符串。
答案 1 :(得分:1)
输出是“错误”。因为这行代码:
t1.setText(str);
每次都会在循环内重写textview。因为最后一次迭代这个词是“bug”,所以textview将显示错误。
如果你想附加字符串而不是重写它,请使用:
t1.append(str);
希望它有所帮助。