从字符串中删除停用词

时间:2016-05-10 09:51:53

标签: android string stop-words removeall

我需要从字符串中删除停用词。我使用以下代码删除停用词并在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);
    }
}

2 个答案:

答案 0 :(得分:2)

t1.setText(str);表示它不关心以前的文字是什么。它将最后一个放在循环中。因此,请改用append

t1.append(str);

或者将每个str附加到单个字符串,并在循环后在TextView中设置该字符串。

答案 1 :(得分:1)

输出是“错误”。因为这行代码:

 t1.setText(str);

每次都会在循环内重写textview。因为最后一次迭代这个词是“bug”,所以textview将显示错误。

如果你想附加字符串而不是重写它,请使用:

 t1.append(str);

希望它有所帮助。