package com.frameworkset.common.tag.pager; import java.io.Serializable; /** * <p>Title: </p> * * <p>Description: </p> * * <p>Copyright: Copyright (c) 2005</p> * * <p>Company: </p> * * @author biaoping.yin * @version 1.0 */ public class TextSpliting implements Serializable{ /** * 获取给定页面的文本内容,页面号码超出页面的号码范围时, * 取首页(页面号码小于0)或者最后一页(页面号码大于最后一页的页码) * @param text String 文本内容 * @param pageNumber int 页面号码 * @param pageSize int 每页显示的文本长度 * @return TextListInfo 封装返回信息: * 总页面数, * 当前页面号码, * 当前页面显示的文本 * */ public static TextListInfo splitStringByPageNumber(String text,int pageNumber,int pageSize) { return splitString(text,(pageNumber -1) * pageSize,pageSize); } public static TextListInfo splitString(String text,int offset,int pageSize) { TextListInfo listInfo = new TextListInfo(); if(text == null && text.length() == 0) { listInfo.setTotal(0); listInfo.setCurPage(0); listInfo.setCurValue(""); return listInfo; } int length = text.length(); int total = length / pageSize ; if(length % pageSize != 0) total += 1; if(offset < 0) offset = 0; else { if (offset >= length) { int size = length % pageSize; if(size == 0) { offset = length - pageSize ; } else { offset = length - size ; } } } int end = offset + pageSize < length? offset + pageSize: length ; String curvalue = text.substring(offset,end); listInfo.setCurValue(curvalue); listInfo.setCurPage(offset/pageSize + 1); listInfo.setTotal(total); return listInfo; } public static void main(String[] args) { String test = "中华人民共和国成立了!!!中华人民共和国万岁!!!!"; for(int i = 1; i <= 13; i ++) System.out.println( TextSpliting.splitStringByPageNumber(test,i,2)); } }