最近搞一个新闻系统,有些文章过于长,所以领导要求一个新闻的内容分页,其实就是长字符串分页!上网找了找,自己改了改 做个记录 代码如下:
以上为全部代码
测试代码,细心的人,一看就会使用了!
public class StringPager {
/** 当前页码数 */
private int currentPage = 1;
/** 需要分页的长字符串 */
private String text;
/** 每页显示字符数, 默认为 200 */
private int sizePerPage = 200;
/** 总页数 */
private int totalPage;
/**
*
*/
public StringPager() {
}
/**
* 返回当前页的字符串.
*
* @return
*/
public String getCurrentPagedText() {
try {
if (getCurrentPage() < getTotalPage()) {
return getText().substring(
(getCurrentPage() - 1) * getSizePerPage(),
getCurrentPage() * getSizePerPage());
} else if (getTotalPage() > 0) {
return getText().substring(
(getCurrentPage() - 1) * getSizePerPage());
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* @return Returns the 当前页码数.
*/
public int getCurrentPage() {
if (currentPage <= 0)
currentPage = 1;
return currentPage;
}
/**
* 设置当前页码, 从 1 开始.
*
* @param currentPage
* The 当前页码数 to set.
*/
public void setCurrentPage(int currentPage) {
if (currentPage <= 0) {
currentPage = 1;
}
this.currentPage = currentPage;
}
/**
* @return Returns the 总页码数, 如果没有数据, 就返回 1.
*/
public int getTotalPage() {
if (getText() == null)
totalPage = 0;
totalPage = (int) Math
.ceil(1.0 * getText().length() / getSizePerPage()); // 总页面数
if (totalPage == 0)
totalPage = 1;
return totalPage;
}
/**
* @param totalPage
* The totalPage to set.
*/
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
/**
* @return Returns the 每页显示字符数.
*/
public int getSizePerPage() {
return sizePerPage;
}
/**
* @param sizePerPage
* The 每页显示字符数 to set.
*/
public void setSizePerPage(int sizePerPage) {
this.sizePerPage = sizePerPage;
}
/**
* @return Returns the 需要分页的长字符串.
*/
public String getText() {
return text;
}
/**
* @param text
* The 需要分页的长字符串 to set.
*/
public void setText(String text) {
this.text = text;
}
public static void main(String[] args) {
StringPager pager = new StringPager();
pager.setSizePerPage(5);
pager.setText("12345678901");
pager.setCurrentPage(1);
System.out.println(pager.getTotalPage());
System.out.println(pager.getCurrentPagedText());
}
}
以上为全部代码
public static void main(String[] args) {
StringPager pager = new StringPager();
pager.setSizePerPage(5);
pager.setText("12345678901");
pager.setCurrentPage(1);
System.out.println(pager.getTotalPage());
System.out.println(pager.getCurrentPagedText());
}
}
测试代码,细心的人,一看就会使用了!