关于生成静态分页问题,望高手进来讨论,并指点一二
本人刚毕业踏入社会工作:
近来主管要求做一个静态分页功能
主要是对Web编辑器(FCKedit)编辑的内容进行分页
首先,静态化的要求是按照1KB来分页.
通过分析,知道FCKedit提交到后台处理的数据,其实就是一段字符串
它有个规律就是内容被编辑后会自动嵌入 <p> </p> 这两个标签,找到这个规律后,其实分页就是对字符串中的字符个数来分.
字符串如下: <p> 标题:飞人刘翔再破世界纪录 </p> <p> <table> <tr> 内容省略 <tr> </table> </p>
1KB是如何计算得来?
字符串中: < 或 p 或 标,这些都是一个字符,占计算机的16位,16位 = 2B,那么1KB = 1024B,1024/2 = 512,也就是说每截取512个字符就可以生成1KB左右的文件,但截取的时候如何呢?
本人是按照如下方法截取:
按照 <p> ... </p> 块来取
按照这种方法取会出现如下情况:
1. <p> .. </p> 之间只取到一半
2.第一个 <p> .. </p> 内容达不到1KB,还要加多一个 <p> .. </p> ,还不够的话继续添加
3.在 <p> 或 </p> 标签中间截开,这种情况有七种,分别例如如下:
3.1 < 与/p> <p>
3.2 </ 与p> <p>
3.3 </p 与> <p>
3.4 </p> 与 <p>
3.5 </p> < 与p>
3.6 </p> <p 与>
3.7 </p> <p>
除了这七种情况之外,还有一种就是从非标签中间隔开:
比如: <p> ss 隔开s <p> 或 <p> ss </p> <p> ss 隔开ss </p>
费了很大劲:
编写如下程序实现,贴出来让高手们提提建议,并指点指点晚辈:
package com.hx.util;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
public class Pagination {
private static final int BYTE_CONSTANT = 13;
public Pagination() {
}
public List getContents(String content, int KB) {
List contents = new ArrayList();
//存放截取后的字符串
String leaveContent = null;
//临时存放字符串
String tmpContent = null;
//计算内容的长度
int kb = KB * BYTE_CONSTANT;
while (content.length() > 0) {
//判断字符串是否被截空
if (content.length() > kb) {
//按照所给的大小,截取字符串
tmpContent = content.substring(0, kb);
//将剩下的字符串临时存放在临时变量中
leaveContent = content.substring(kb);
} else {