Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.Serializable;
- import java.util.Hashtable;
- public class SpamFilter implements Serializable
- {
- private Hashtable badWords;
- /**
- * Default constructor, creates a new hash table
- */
- SpamFilter()
- {
- badWords = new Hashtable();
- }
- /**
- * Inserts an element into the table
- * @param s
- * Element to insert
- */
- public void insert(String s)
- {
- System.out.println("here");
- badWords.put(s.toLowerCase(), s.toLowerCase());
- }
- /**
- * Removes an element from the table
- * @param word
- * Element to remove from table
- * @throws ElementNotFoundException
- * Thrown if the element is not found in the table.
- */
- public void remove(String word) throws ElementNotFoundException
- {
- Object removed = badWords.remove(word.toLowerCase());
- if (removed == null)
- throw new ElementNotFoundException(word + " was not found in"
- + " the list of bad words");
- }
- /**
- * Determines if a bad word exists in the table
- * @param checkMe
- * element to locate
- * @return
- * true if found, false otherwise
- */
- public boolean isBadWord(String checkMe)
- {
- return badWords.containsKey(checkMe.toLowerCase());
- }
- /**
- * Checks an email message for bad words and counts them. Returns a ratio of
- * bad words to total words
- * @param message
- * The email to be analyzed
- * @return
- * The ratio of bad words to total words
- */
- public float checkEmail(String message)
- {
- String[] words = message.toLowerCase().split("[^a-zA-Z]");
- int badWordCount = 0;
- for (int i = words.length - 1; i > 0; --i)
- {
- if (isBadWord(words[i])) ++badWordCount;
- }
- return (float) badWordCount / (float) words.length;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement