[Java Console 게시판 만들기 - 2] - http://blog.whitelife.co.kr/163
윗 글의 게시판 소스 개선 입니다.
- Object 형태로 변경
- 게시판 Array가 꽉 찼을 경우 동적 Array 생성
이제는 게시글을 제한 없이 입력이 가능 합니다.
import java.util.Scanner; public class Bbs { private Scanner s; private String[][] bbses; private int seq; private int gindex; public Bbs() { this.s = new Scanner(System.in); this.bbses = new String[9][]; this.seq = 1; this.gindex = 0; } public void addArray() { String[][] temp = this.bbses; this.bbses = new String[(int)temp.length + 10][]; System.arraycopy(temp, 0, this.bbses, 0, temp.length); } public void readme() { System.out.println("1. 등록, 2. 상세보기, 3. 수정, 4. 삭제, 5. 목록, x. 종료"); } public void exit() { System.out.println("프로그램을 종료 합니다."); } public String getInput() { return this.s.next(); } public void create() { if (gindex == bbses.length) { this.addArray(); } String no = String.valueOf(seq); System.out.println("input title..."); String title = getInput(); System.out.println("input content..."); String content = getInput(); String[] bbs = new String[3]; bbs[0] = no; bbs[1] = title; bbs[2] = content; this.bbses[this.gindex++] = bbs; this.seq++; System.out.println("등록이 완료 되었습니다."); } private String[] getSearch(String no) { for (String[] bbs : this.bbses) { if (bbs != null && bbs[0].equals(no)) { return bbs; } } return null; } private int getIndex(String no) { for (int i=0; i<this.bbses.length; i++) { String[] bbs = this.bbses[i]; if (bbs != null && bbs[0].equals(no)) { return i; } } return -1; } public void read(String no) { if (no == null || no == "") { System.out.println("잘못 입력 하셨습니다."); return; } String[] bbs = getSearch(no); if (bbs == null) { System.out.println("게시글이 없습니다."); return; } System.out.println("no: " + bbs[0]); System.out.println("title: " + bbs[1]); System.out.println("content: " + bbs[2]); } public void update(String no) { if (no == null || no == "") { System.out.println("잘못 입력 하셨습니다."); return; } String[] bbs = this.getSearch(no); if (bbs == null) { System.out.println("게시글이 없습니다."); return; } System.out.println("input title..."); String title = this.getInput(); System.out.println("input content..."); String content = this.getInput(); bbs[1] = title; bbs[2] = content; System.out.println("수정이 완료 되었습니다."); } public void delete(String no) { if (no == null || no == "") { System.out.println("잘못 입력 하셨습니다."); return; } int index = this.getIndex(no); if (index == -1) { System.out.println("게시글이 없습니다."); return; } this.bbses[index] = null; this.gindex--; int length = this.bbses.length; for (int i=0; i<length; i++) { if (index == 0) { break; } if (index == length-1) { break; } if (i > index) { if (i < length) { this.bbses[i-1] = this.bbses[i]; this.bbses[i] = null; } } } System.out.println("삭제가 완료 되었습니다."); } public void getList() { for (int i=0; i<this.bbses.length; i++) { if (this.bbses[i] == null) continue; System.out.println("index: " + i); System.out.println("no: " + this.bbses[i][0]); System.out.println("title: " + this.bbses[i][1]); System.out.println("content: " + this.bbses[i][2]); } } public static void main(String[] args) { Bbs bbs = new Bbs(); while(true) { bbs.readme(); String choice = bbs.getInput(); if (choice.equals("1")) { bbs.create(); } else if (choice.equals("2")) { System.out.println("번호를 입력해 주십시오."); bbs.read(bbs.getInput()); } else if (choice.equals("3")) { System.out.println("번호를 입력해 주십시오."); bbs.update(bbs.getInput()); } else if (choice.equals("4")) { System.out.println("번호를 입력해 주십시오."); bbs.delete(bbs.getInput()); } else if (choice.equals("5")) { bbs.getList(); } else if (choice.equals("x")) { bbs.exit(); break; } else { System.out.println("잘못 입력 하셨습니다.\n다시 입력해 주십시오."); } } } }
'Java' 카테고리의 다른 글
Java Reflection 활용하기 (0) | 2013.11.18 |
---|---|
Java Console 게시판 만들기 - 4 (4) | 2013.11.13 |
Java Console 게시판 만들기 - 2 (0) | 2013.11.11 |
Java Console 게시판 만들기 (1) | 2013.11.10 |
실행 시 Exception in thread "main" java.lang.UnsupportedClassVersionError: httpsclient : Unsupported major.minor version 51.0 해결 하기 (0) | 2013.04.24 |