반응형
https://gist.github.com/parkground/90e5e118b6e9d9a8564128ba80d7605e
[Zero-base] 4주차 과제 (Paging.java)
[Zero-base] 4주차 과제 (Paging.java). GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
/* Paging.java */
public class Paging {
/* 입력 값 */
static int totalPage = 127;
static int pageBlock = 10;
/* 현재 페이지 인덱스 선언 */
static int pageIndex;
/* 페이지 인덱스별 블록 지정 메소드 */
static int currentBlock() {
return (pageIndex -1) / pageBlock;
}
/* 마지막 페이지 인덱스 지정 메소드 */
static int lastIndex() {
return (int)(Math.ceil(totalPage / pageBlock)) + 1;
}
/* 해당 블록에서 첫번째 인덱스 번호 지정 메소드 */
static int firstNo(){
return currentBlock() * pageBlock;
}
/* 해당 블록에서 마지막 인덱스 번호 지정 메소드 */
static int lastNo(){
return currentBlock() * pageBlock + pageBlock;
}
/* 페이지 네비게이션 출력 메소드 */
static void print() {
//String을 저장할 StringBuffer 생성
StringBuffer pageNavigation = new StringBuffer();
//'처음'과 '이전' 네비게이션 버튼을 html형식 String으로 저장
pageNavigation.append("<a href=\"#\">[처음]</a> ");
pageNavigation.append("<a href=\"#\">[이전]</a> ");
for(int i = firstNo()+1; i < lastNo()+1; i++) {
//마지막 인덱스를 넘어갈 경우 반복문 종료
if (i > lastIndex()) { break; }
//현재 페이지 인덱스와 동일한 경우 인덱스를 붉은 색으로 지정하고 저장
if (i == pageIndex) {
pageNavigation.append("<a href=\"#\" style=\"color:red;\">"+ i +"</a> ");
} else if (i != pageIndex) { //그 외의 경우 기본 값으로 지정하고 저장
pageNavigation.append("<a href=\"#\">"+ i +"</a> ");
}
}
//'다음'과 '마지막' 네비게이션 버튼을 html형식 String으로 저장
pageNavigation.append("<a href=\"#\">[다음]</a> ");
pageNavigation.append("<a href=\"#\">[마지막]</a><br>\r\n");
//저장된 값을 출력하는 메소드 호출
System.out.println(pageNavigation.toString());
}
/* 페이지 네비게이션 메인 메소드 */
public static void main(String[] args) {
//시작 인덱스를 1로 지정하고,
pageIndex = 1;
//반복문을 이용하여 마지막 인덱스까지 출력 메소드 호출
for(int i = pageIndex; i <= lastIndex(); i++) {
print();
pageIndex++;
}
}
}
반응형
'cs > java-spring-boot' 카테고리의 다른 글
[Zero-base] 5-2. 학습 관리 시스템 사이트 분석 (0) | 2022.02.08 |
---|---|
[Zero-base] 5-1. 버전 관리 (0) | 2022.02.07 |
개발자의 시크릿노트 책 [클린코드] (0) | 2022.02.07 |
[Zero-base] 4-7. 예외처리 (0) | 2022.02.04 |
[Zero-base] 4-6. Collection과 Map (0) | 2022.02.04 |