home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 December / PCO1297.ISO / FilesBBS / FREI / CLS.ARJ / CLS.ZIP / HTMLcvt.java < prev    next >
Encoding:
Java Source  |  1997-11-02  |  1.5 KB  |  57 lines

  1. public class HTMLcvt {
  2.   static private final String[] tab1 = { "lt;", "gt;", "quot;", "amp;", "szlig;",
  3.                                          "auml;", "ouml;", "uuml;",
  4.                                          "Auml;", "Ouml;", "Uuml;" };
  5.   static private final String   tab2 =   "<>\"&▀Σ÷ⁿ─╓▄";
  6.  
  7.   static public String toHTML(String s) {
  8.     StringBuffer r=new StringBuffer();
  9.     for(int i=0; i<s.length(); ) {
  10.       int ch=s.charAt(i++);
  11.       int n=tab2.indexOf(ch);
  12.       if(n>=0) {
  13.         r.append('&');
  14.         r.append(tab1[n]);
  15.       }
  16.       else if(ch>127 || (ch<32 && (" \t\r\n".indexOf(ch)<0))) {
  17.         r.append("&#");
  18.         r.append(ch);
  19.         r.append(';');
  20.       }
  21.       else
  22.         r.append((char)ch);
  23.     }
  24.     return r.toString();
  25.   }
  26.   static public String fromHTML(String s) {
  27.     StringBuffer r=new StringBuffer();
  28.     for(int i=0; i<s.length();) {
  29.       int ch=s.charAt(i++);
  30.       if(ch!='&') {
  31.         r.append((char)ch);
  32.         continue;
  33.       }
  34.       String sub=s.substring(i);
  35.       if(sub.startsWith("#")) {
  36.         int val=0;
  37.         while(++i<s.length()) {
  38.           ch=s.charAt(i);
  39.           if(ch<'0' || ch>'9') break;
  40.           val=10*val+(ch-'0');
  41.         }
  42.         r.append((char)val);
  43.         continue;
  44.       }
  45.       for(int n=0; n<tab1.length; ++n) {
  46.         if(sub.startsWith(tab1[n])) {
  47.           r.append((char)tab2.charAt(n));
  48.           i+=tab1[n].length();
  49.           break;
  50.         }
  51.       }
  52.     }
  53.     return r.toString();
  54.   }
  55. }
  56.  
  57.