我需要一个分页算法,比如总页数20页,我只需要展示1,2,3,4,省略号,17,18,19,20;我需要一个Java算法来达到这种小果果
时间: 2023-12-14 10:04:39 浏览: 25
好的,以下是Java语言的实现方式:
```java
public class Pagination {
private static final int PAGE_SIZE = 4;
public static void main(String[] args) {
int currentPage = 1; // 当前页码
int totalPage = 20; // 总页数
if (totalPage <= PAGE_SIZE + 2) { // 总页数不超过6页,全部展示
for (int i = 1; i <= totalPage; i++) {
System.out.print(i + " ");
}
} else { // 总页数超过6页,需要隐藏中间部分页码
if (currentPage <= PAGE_SIZE) { // 当前页码在前4页,需要展示前6页
for (int i = 1; i <= PAGE_SIZE + 1; i++) {
System.out.print(i + " ");
}
System.out.print("... " + totalPage);
} else if (currentPage >= totalPage - PAGE_SIZE + 1) { // 当前页码在后4页,需要展示后6页
System.out.print("1 ... ");
for (int i = totalPage - PAGE_SIZE; i <= totalPage; i++) {
System.out.print(i + " ");
}
} else { // 当前页码在中间部分,需要展示1页、省略号、当前页码前后各2页、省略号、总页数1页
System.out.print("1 ... ");
for (int i = currentPage - 2; i <= currentPage + 2; i++) {
System.out.print(i + " ");
}
System.out.print("... " + totalPage);
}
}
}
}
```
以上代码实现了一个简单的分页算法,当总页数不超过6页时,将全部页面展示出来;当总页数超过6页时,需要隐藏中间的部分页面。其中,当前页码前后各展示2页,其余部分用省略号表示。