반응형

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++;
        }
    }
}

html 파일 실행 결과

 

반응형

+ Recent posts