虚拟主机行业最新资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:站长资讯>-> 在线教程-> JSP教程
JAVA写的简单UBB类-JSP教程,Java技巧及代码
作者:网友供稿 点击:34
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,空间150元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
 

最近做论坛碰到了ubb的问题,这个很大众化的东西,怎么没有java写的解释器呢,实在是该写一个。下面的这个不全,但是可以应付一下。

import java.util.*;

public class htmlstring{
 public htmlstring(){}
 public static string htmlentities(string str){
  return ubb(str);
 }
 public static boolean hasspecialcharacter(string str){
  /*用于合法性检查
  if(str.indexof("\\")!=-1){
   return false;
  }
  if(str.indexof("")!=-1){
   return false;
  }
  if(str.indexof(")!=-1){
   return false;
  }
  if(str.indexof("<")!=-1){
   return false;
  }
  if(str.indexof(">")!=-1){
   return false;
  }
  */
  return true;

 }

 public static string ubb(string fstring){
  return (chkstring(formatstr(fstring))); 
 }  
 
 //屏蔽html代码,并处理回车和换行 
 public static string formatstr(string fstring){
  /*
  fstring = repstr(fstring, "‘","");
  fstring = repstr(fstring, "\"","“");
  fstring = repstr(fstring, "<","<");
  fstring = repstr(fstring, "<","<");
  fstring = repstr(fstring, ">",">");
  fstring = repstr(fstring, " ","\r");
  */
  fstring = repstr(fstring, "&acute;","");
  fstring = repstr(fstring, "&quot;","\"");
  fstring = repstr(fstring, "&lt;","<");
  fstring = repstr(fstring, "&gt;",">");
  fstring = repstr(fstring, "&nbsp;"," ");
  fstring = repstr(fstring, " ","\r");
  return (fstring); 
 } 
 
 //把ubb代码转换成html代码以便正常显示 
 public static string chkstring(string fstring){  
  fstring = fstring.trim();    
  if (fstring.equals(""))    
   fstring = " ";  
  else{   
   fstring = docode(fstring, "<b>", "</b>","<b>","</b>");    
   fstring = docode(fstring, "<u>", "</u>", "<u>", "</u>");    
   fstring = docode(fstring, "<i>", "</i>", "<i>", "</i>");    
   fstring = docode(fstring, "[red]", "[/red]", "<font color=red>", "</font id=red>");
   fstring = docode(fstring, "[green]", "[/green]", "<font color=green>", "</font id=green>");
   fstring = docode(fstring, "[blue]", "[/blue]", "<font color=blue>", "</font id=blue>");
   fstring = docode(fstring, "[white]", "[/white]", "<font color=white>", "</font id=white>");
   fstring = docode(fstring, "[purple]", "[/purple]", "<font color=purple>", "</font id=purple>");
   fstring = docode(fstring, "[yellow]", "[/yellow]", "<font color=yellow>", "</font id=yellow>");
   fstring = docode(fstring, "[violet]", "[/violet]", "<font color=violet>", "</font id=violet>");
   fstring = docode(fstring, "[brown]", "[/brown]", "<font color=brown>", "</font id=brown>");
   fstring = docode(fstring, "[black]", "[/black]", "<font color=black>", "</font id=black>");
   fstring = docode(fstring, "[pink]", "[/pink]", "<font color=pink>", "</font id=pink>");
   fstring = docode(fstring, "[orange]", "[/orange]", "<font color=orange>", "</font id=orange>");
   fstring = docode(fstring, "[gold]", "[/gold]", "<font color=gold>", "</font id=gold>");
   fstring = docode(fstring, "<h1>", "</h1>", "<h1>", "</h1>");    
   fstring = docode(fstring, "<h2>", "</h2>", "<h2>", "</h2>");    
   fstring = docode(fstring, "<h3>", "</h3>", "<h3>", "</h3>");    
   fstring = docode(fstring, "<h4>", "</h4>", "<h4>", "</h4>");    
   fstring = docode(fstring, "<h5>", "</h5>", "<h5>", "</h5>");    
   fstring = docode(fstring, "<h6>", "</h6>", "<h6>", "</h6>");    
   fstring = docode(fstring, "[size=1]", "[/size=1]", "<font size=1>", "</font id=size1>");    
   fstring = docode(fstring, "[size=2]", "[/size=2]", "<font size=2>", "</font id=size2>");
   fstring = docode(fstring, "[size=3]", "[/size=3]", "<font size=3>", "</font id=size3>");
   fstring = docode(fstring, "[size=4]", "[/size=4]", "<font size=4>", "</font id=size4>");
   fstring = docode(fstring, "[size=5]", "[/size=5]", "<font size=5>", "</font id=size5>");
   fstring = docode(fstring, "[size=6]", "[/size=6]", "<font size=6>", "</font id=size6>");
   fstring = docode(fstring, "[left]", "[/left]", "<div align=left>", "</div id=left>");  
   fstring = docode(fstring, "<center>", "</center>", "<center>", "</center>");   
   fstring = docode(fstring, "<div align=right>", "</div>", "<div align=right>", "</div id=right>");
   fstring = docode(fstring, "<pre class=codesamp>", "</pre>", "<pre id=code><font face=courier size=3 id=code>", "</font id=code></pre id=code>");
   fstring = docode(fstring, "[url]", "[/url]", "<a>", "</a>");
   fstring = addlink(fstring);
   fstring = addbr(fstring);
  }  
  return (fstring); 
 } 
 
 //方便的替换函数 
 public static string docode(string fstring,string fotag, string fctag, string frotag, string frctag){
  fstring = repstr(fstring, frotag, fotag);  
  fstring = repstr(fstring, frctag, fctag);   
  return (fstring); 
 } 
 
 //处理链接 
 public static string addlink(string str){  
  string hreftagpre = "<a>";  
  string hreftaglast = "</a>";  
  string hreftxt = "";  
  string  strreturn = "";  
  int isearchedfrom = 0 ;  
  int first = 0;  
  int last = 0;   
  while  (( isearchedfrom=str.indexof( hreftagpre , isearchedfrom) ) != -1 ){  
   first = isearchedfrom + 3;   
   if (( isearchedfrom=str.indexof( hreftaglast , isearchedfrom) ) != -1 ) { 
    last = isearchedfrom;    
    isearchedfrom += 4;      
    strreturn = str.substring( first, last);  
    if (strreturn.indexof( "<a>", 0) != -1){ 
     strreturn = repstr ( strreturn , "", "<a>");
    }         
    hreftxt = "<a href =" +strreturn  + " target=\"_blank\">" + strreturn + "</a>";
    strreturn = str.substring( first - 3 , isearchedfrom);   
    str = repstr(str, hreftxt ,strreturn );   
    isearchedfrom =0;   
   }else    
    break;    
  }
  return (str); 
 } 
 
 public static string fd(string str){
  string fd=repstr(str,"",""); 
  return fd; 
 } 
 
 public static string repstr(string str, string strden, string strsrc){ 
  int ilen = str.length();  
  int idenlen = strden.length(); 
  int isrclen = strsrc.length(); 
  string strreturn = "";  
  int isearchedfrom = 0 ;  
  int iprevsearchedfrom = 0;  
  while ( (isearchedfrom = str.indexof(strsrc , isearchedfrom)) != -1 ){ 
   strreturn += str.substring(iprevsearchedfrom, isearchedfrom);  
   strreturn += strden;  
   isearchedfrom += isrclen; 
   iprevsearchedfrom = isearchedfrom;  
  }   
  if ( iprevsearchedfrom !=0 )
   strreturn += str.substring( str.lastindexof(strsrc) + isrclen   , str.length());
  else   
   strreturn = str;   
  return(strreturn); 
 } 
 
 public static string removecomment(string content) {
  string makecontent=new string(); 
  stringtokenizer strtoken=new stringtokenizer(content,"\n"); 
  string temptoken=null;  
  while(strtoken.hasmoretokens()) {  
   temptoken=strtoken.nexttoken();  
   if(temptoken.indexof(":")!=0)  
    makecontent=makecontent+temptoken+"\n";  
  }  
  return makecontent;
 } 
 
 public static string addbr(string content) { 
  string makecontent=new string();  
  stringtokenizer strtoken=new stringtokenizer(content,"\n"); 
  while(strtoken.hasmoretokens()){ 
   string snext = strtoken.nexttoken();  
   makecontent=makecontent + snext.substring(0,snext.length()-1) + "<br>"; 
  }  
  return makecontent; 
 }   
 
 public static string delbr(string content) {  
  string makecontent=new string();  
  stringtokenizer strtoken=new stringtokenizer(content,"<br>");  
  while(strtoken.hasmoretokens()) {   
   string snext = strtoken.nexttoken();   
   makecontent=makecontent + snext.substring(0,snext.length()-4) + "\n";  
  }  
  return makecontent; 
 }
}


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
文章页数:[1] 
相关主题
  • JAVA写的四则混合运算-JSP教程,Java技巧及代码
  • java写的StringList类-JSP教程,Java技巧及代码
  • JAVA写的NotePad-JSP教程,Java技巧及代码
  • java写文件-JSP教程,Java技巧及代码
  • Google

    热门文章
    ·IReport与JasperReport开发详解一-JSP教程,Java技巧及代码
    ·JSTL(JSP标准标签库)介绍-JSP教程,资料/其它
    ·格式化输入日期时间控件 JieFormattedDateBox-JSP教程,Java技巧及代码
    ·JSTL简化JSP编码-JSP教程,Jsp/Servlet
    ·JUnit和单元测试入门简介-JSP教程,Java技巧及代码
    ·从数据库中读取一个图片并保存为一个图片文件-JSP教程,数据库相关
    ·Java Swing入门基础-JSP教程,Java技巧及代码
    ·IntelliJ IDEA培训-JSP教程,Java技巧及代码
    ·通过JSP的预编译消除性能瓶颈-JSP教程,Jsp/Servlet
    ·Java中利用JMF编写摄像头拍照程序-JSP教程,Java技巧及代码

    最新文章
    ·J2ME中的时间处理方法
    ·J2ME播放声音流程简介
    ·J2ME开发之手机键盘使用注意问题
    ·J2ME 记录管理存储
    ·MVC模式在j2me项目中的应用(二)
    ·MVC模式在j2me项目中的应用(一)
    ·J2ME中使用记录存储系统(RMS)存储信息
    ·J2ME与MIDP开发(1)
    ·用简单的J2ME程序测试MIDlet的生命周期
    ·JAVA基础:提升JSP应用程序的七大绝招

    相关主题
  • JAVA写的四则混合运算-JSP教程,Java技巧及代码
  • java写的StringList类-JSP教程,Java技巧及代码
  • JAVA写的NotePad-JSP教程,Java技巧及代码
  • java写文件-JSP教程,Java技巧及代码



  • 友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 一班在线
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机


    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
      打印  刷新  关闭


    联系我们  |  广告服务  |  免责声明  |  友情连接
    Copyright ?2005 - 2006 All Rights Reserved
    蜀ICP备05000045号