2016-05-10 4 views
-1

Мне нужно удалить стоп-слова из строки. Я использую следующий код для удаления стоп-слов и установки окончательного вывода в textView. Но когда я запускаю код, он всегда дает выходные «ошибки». Другими словами, он всегда дает мне последнее слово строки в качестве вывода. Проверьте мой код и справку!Удаление стоп-слов из строки

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

t1.setText(str); означает, что он не заботится, что предыдущий текст был. Он помещает последний в цикл. Поэтому вместо этого используйте append.

t1.append(str); 

ИЛИ Append каждый str к одной строки и установить, что в TextView после цикла.

+0

Спасибо, что это работает :) –

+0

@ArslanAli Замечательно слушать. –

+0

Можете ли вы рассказать мне, что делать, чтобы дать пробелы в окончательном выходе Iam, получающий вывод, который я хочу, но все слова соединены. Они должны быть разделены пробелами –

1

Выход «ошибки». из-за этой строки кода:

t1.setText(str); 

, который будет переписывать текстовое изображение каждый раз внутри цикла. Поскольку последняя итерация - это «ошибки». В текстовом виде будут отображаться ошибки.

Если вы хотите добавить строку вместо повторного написание его использование:

t1.append(str); 

Надеется, что это помогает.

+0

Спасибо, много работает –