2016-04-27 20 views
1

Ich entwickle eine Spam-SMS-App, in der ich verschiedene Schlüsselwörter in einer db und einer Listenansicht gespeichert habe. Nun, was ich will, ist, dass, wenn immer eine neue Nachricht kommt, dann der Nachrichtentext mit der Keyword-Liste verglichen wird, aber hier kommt ein kniffliger Teil, dass ich diese neue SMS nicht als SPAM kategorisieren möchte, wenn ein einzelnes Keyword mit diesem Body übereinstimmt sollte mit allen Schlüsselwörtern verglichen werden, und wenn diese Nachricht maximal 3 oder 4 Schlüsselwörter aus der Schlüsselwortliste enthält, wird die Nachricht als Spam bezeichnet und wenn nur 1 oder 2 Schlüsselwörter verwendet werden, wird die Nachricht nicht als Spam bezeichnet. also ich wollte meinen Nachrichtentext mit mehreren Schlüsselwörtern in der Schlüsselwortliste vergleichen, aber ich weiß nicht, wie man das macht. Hier ist mein Code, die für einzelne Keyword überprüft, aber ich möchte mit mehreren vergleichen bitteZeichenkette mit mehreren ListView-Elementen vergleichen

if (msglist != null) { 
      for (int i1 = 0; i1 < msglist.size(); i1++) { 

      String keyword = msglist.get(i1); 


      if (msgBody.toUpperCase().contains(keyword.toUpperCase()) && !contactExists(context, msg_from)) { 

       keywordPresent = true; 
       screenMessage(context, msg_from, msg_from, msgBody, msgDate); 
       break; 

Hilfe wo msgList die Liste der Schlüsselwörter und wenn einzelne Keyword-Matches enthält, und auch der Kontakt ist nicht bekannt, dann wird es in Spam gespeichert Klasse in Methode screenMessage Bitte um Hilfe für comapring mit mehreren Keywords

+0

nicht hinzufügen ‚brechen‘ Ihre for-Schleife, behalten Sie stattdessen eine Zählung für jedes übereinstimmende Keyword. – Kunu

+0

können Sie bitte einen kleinen Code dafür schreiben? Ich bin Anfänger also, wenn Sie bitte :( –

Antwort

1
int keyWordMatched = 0;  
for (int i1 = 0; i1 < msglist.size(); i1++) { 

      String keyword = msglist.get(i1); 


      if (msgBody.toUpperCase().contains(keyword.toUpperCase()) && !contactExists(context, msg_from)) { 

       keywordPresent = true; 
       keyWordMatched++; 
       screenMessage(context, msg_from, msg_from, msgBody, msgDate); 
       //break; 
} 

// überprüfen keyWordMatched Zahl größer ist als Ihre Anforderung dann zu Spam

+0

Ok sir Lemme das versuchen –

Verwandte Themen