java 分页 页码计算_分页条中显示数字页码的计算方法

页码多的时候,当前页始终保持是分页条中显示的最中间那页。

public static void main(String[] args) {

calcPage(5, 20, 1);

}

/**

* 计算显示当前分页的起始页

* @param pageNum 当前页码

* @param pageCount 总页数

* @param sideNum 分页系数 分页条中显示几个数字页码。

* 显示数字页码个数 = 2 * sideNum + 1

*/

public static void calcPage(int pageNum,int pageCount,int sideNum){

int startNum = 0;

int endNum = 0;

if(pageCount<=sideNum){

endNum = pageCount;

}else{

if(pageNum<=(sideNum+1)){

endNum = 2*sideNum +1;

}else{

if((pageNum+sideNum)>pageCount){

endNum = pageCount;

}else{

endNum = pageNum + sideNum;

}

}

}

if(pageNum<=sideNum){

startNum = 1;

}else{

if((pageNum+sideNum)>pageCount){

startNum = pageCount - 2*sideNum;

}else{

startNum = pageNum - sideNum;

}

}

loopOut(startNum, endNum, pageNum);

}

/**

* 输出计算出来的当前分页详情

* @param startNum

* @param endNum

* @param pageNum

*/

public static void loopOut(int startNum,int endNum,int pageNum){

for (int i = startNum; i <= endNum; i++) {

if(i==pageNum){

//输出@符号,代表当前页

System.out.print(i+"@ | ");

}else{

System.out.print(i+" | ");

}

}

}

原文:http://my.oschina.net/ski/blog/294811

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值