home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 December / PCO1297.ISO / FilesBBS / FREI / JAVA3.ARJ / JAVA3.ZIP / JAVA / HTMLcvt.java < prev    next >
Encoding:
Java Source  |  1997-11-06  |  1.6 KB  |  59 lines

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