package scruf.parsers; import java.util.regex.*; import java.util.*; /** * Map of Symbols & their HTML equivalent numbers. */ public class SymbolMap extends HashMap { public SymbolMap() { put("!","!"); put("\"","""); put("#","#"); put("$","$"); put("%","%"); put("&","&"); put("'","'"); put("(","("); put(")",")"); put("*","*"); put("+","+"); put(",",","); put("-","-"); put(".","."); put("/","/"); put(":",":"); put(";",";"); put("<","<"); put("=","="); put(">",">"); put("?","?"); put("@","@"); put("[","["); put("\\","\"); put("]","]"); put("^","^"); put("_","_"); put("`","`"); put("{","{"); put("|","|"); put("}","}"); put("~","~"); } /** * this method quotes symbols to a HTML number. */ public String quote(String string) { Pattern pattern = Pattern.compile("(\\&(amp|lt|gt|(\\#35))\\;)|(\\p{Punct})"); Matcher matcher = pattern.matcher(string); StringBuffer sbuffer = new StringBuffer(); while(matcher.find()) { if(matcher.group(4)!=null) { matcher.appendReplacement(sbuffer, this.get(matcher.group())); } } matcher.appendTail(sbuffer); return sbuffer.toString(); } }