`
leichenlei
  • 浏览: 128809 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

栈实现HTML和UBB的转换

阅读更多

之前做论坛的时候曾经傻b呵呵的用环视正则做的,原来栈就可以啊。

这个例子不实现细节,也不完成什么功能,只是说明栈可以处理前后匹配,上代码。

package com.test;

import java.util.Stack;


public class Test {
	class Node {
		int start;
		int end;
		String tagName;
	}
	/**
	 * 忽略了匹配细节,实现html解析
	 * @param html html
	 * @return
	 */
	public String ubb(String html){
		StringBuffer result = new StringBuffer();
		int pos = -1;//标记每个开始标签符号位置
		Stack<Node> tagStack = new Stack<Node>();
		int len = html.length();
		for(int i = 0; i < len; i++){
			switch(html.charAt(i)){
				case '<':
					pos = i;
				break;
				case '>':
					if(pos != -1){
						Node node = new Node();
						node.start = pos;
						node.end = i + 1;
						node.tagName = html.substring(pos + 1, i);
						if(tagStack.isEmpty() || !tagStack.peek().tagName.equals(node.tagName)){
							tagStack.push(node);
						}else{
							Node startNode = tagStack.pop();
							System.out.println(html.substring(startNode.start, i + 1));
						}
						pos = -1;
					}
				break;
			}
		}
		return result.toString();
	}
	public static void main(String[] args) throws Exception {
		System.out.println(new Test().ubb("<a><b>asdf<b><a>"));
	}
}
分享到:
评论

相关推荐

    C#实现HTML和UBB互相转换的方法

    本文实例讲述了C#实现HTML和UBB互相转换的方法。分享给大家供大家参考。具体实现方法如下: html转UBB的还不是很完美,有空修改,一些代码来自百度谷歌,如下所示: 代码如下:private string DoHtmlToUBB(string _...

    ubb转html(asp.net)

    在标签“ubb转换源码”中,我们可以理解为这个压缩包可能包含了一个实现了上述功能的源代码示例。这个源代码可以作为学习和参考的资源,帮助开发者理解如何在ASP.NET环境中处理UBB到HTML的转换。 至于压缩包内的...

    Html2UBB在线编辑器

    Html2UBB在线编辑器是一种专门用于转换HTML代码到UBB(Undernet Bulletin Board)代码的工具,尤其适用于网络论坛和社区的评论功能。UBB是一种标记语言,它简化了HTML,使得用户在没有深入HTML知识的情况下也能方便...

    jquery html在线ubb编辑器代码

    jQuery HTML在线UBB编辑器是一种常见的富文本编辑器实现,它允许用户在网页上以WYSIWYG(所见即所得)的方式编辑HTML内容,并将其转换为UBB(Underlined Bulletin Board)代码,这种格式常用于论坛、博客等平台,...

    ubb转换工具(很好用)!

    总的来说,"ubb转换工具"是处理UBB代码和提升内容跨平台兼容性的一个实用助手。无论你是论坛管理员还是内容创作者,掌握这样的工具都将极大地提高你的工作效率,并保证内容在不同环境下的呈现质量。

    HTML与UBB互转 htmltoubb ubbtohtml

    完整的html与ubb互转代码完整的html与ubb互转代码

    UBB替换为Html

    转换UBB到HTML的过程可以通过编程实现,一般分为以下几个步骤: 1. **扫描文本**:遍历输入的UBB代码字符串,查找UBB标签。 2. **匹配和替换**:找到UBB标签后,用相应的HTML标签替换。这通常涉及正则表达式的使用...

    html在线编辑器UBB_可以指定字体颜色下划线WORD格式工具条的效果.zip

    `editor` 文件可能是编辑器的核心组件,可能是一个JavaScript库或者一个单独的HTML文件,它实现了UBB编码与HTML之间的转换逻辑,以及各种格式化功能。这个组件可能使用DOM(文档对象模型)操作来实现文本的选择、...

    简单实用的HTML到UBB转换脚本工具实现说明

    HTML到UBB转换工具是一种实用程序,用于将HTML标记语言转换为UBB(Uniform BBCode)格式,这种格式常用于论坛和在线社区。这个工具的目的是解决一个问题:博客通常使用HTML进行编辑,而大多数论坛系统支持的是UBB,...

    高速UBB标签转换引擎

    2. 容错性非常好,比如对于错误UBB语法"[b]你[i]好[/b]啊[/i]",可以选择两种容错模式“忽略(IGNORE)”和“关闭(CLOSE)”,如果采用忽略模式,那么错误的标签会被忽略掉,也就是转换为"你[i]好啊[/i]";而如果采用...

    jQuery实现的精简UBB代码编辑器源码.zip

    源码中的主要部分包括初始化、事件绑定、UBB转换和样式控制等。初始化阶段,编辑器会创建一个文本框,并将其转换为可编辑的元素。这通常通过设置`contenteditable`属性实现,使得用户可以直接在该元素内输入和编辑...

    to_html_ubb

    从压缩包中的"to html ubb.exe"文件来看,这应该是一个可执行程序,可能包含用户界面,允许用户输入关键词和链接,然后一键生成HTML和UBB代码。使用时,用户需确保该程序来自可信赖的源,并且遵循安全的网络实践,...

    得心应手HTML&UBB互转器

    总之,"得心应手HTML&UBB互转器"是一款方便的转换工具,能够满足用户在HTML和UBB之间自由转换的需求,尤其适用于内容创作者、网络管理员以及论坛活跃用户。只需运行压缩包内的"得心应手HTML&UBB互转器.exe"程序,并...

    UBB转换HTML的js代码

    很好用,有复杂和简单两种方法。正则来转换。

    实现ubb代码的java类

    Java类的实现意味着这个程序会有一个解析器,它可以识别这些标记并转换为对应的HTML或其他富文本格式,以便在网页或应用程序中正确显示。 这个Java类的设计考虑到了扩展性,这意味着它不仅包含基本的UBB代码解析...

    UBB_URL转换工具

    UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换

    易语言源码易语言HTM与UBB互转源码.rar

    在这个"易语言源码易语言HTM与UBB互转源码.rar"压缩包中,包含的是易语言编写的程序源代码,用于实现HTML和UBB两种格式之间的转换。 HTML(HyperText Markup Language)是网页的标准标记语言,用于描述网页结构和...

Global site tag (gtag.js) - Google Analytics