[ 게시판 만들기 - 1 (배열, Scanner) ]
=> 배열, Scanner 내용
- 배열 : http://momentoo.tistory.com/4
- Scanner : http://momentoo.tistory.com/5
[ 게시판 소스 ]
- 배열과 Scanner만을 사용되어진 게시판입니다.
- 게시물을 CRUD(Create, Read, Update, Delete)기능을 통해 사용해 볼 수 있습니다.
- 게시물을 저장 수 있는 크기가 제한적인 소스입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | import java.util.Scanner; public class BoardFirst { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 문자열 입력을 위한 Scanner 생성 String[][] boardArr = new String[5][]; // 게시판 내용을 저장하기 위한 배열 (5개 게시물 내용만 저장할 수 있음.) int boardArrCnt = 0; // 게시물 카운트 int seq = 1; // 게시물 번호 while(true) { System.out.println("1. 등록 2. 전체조회 3. 선택조회 4. 수정 5. 삭제 0. 종료"); String choice = sc.next(); // 모드 선택 if(choice.equals("1")) { System.out.println("등록란입니다."); if(boardArrCnt >= boardArr.length) { // 배열 크기가 최대 일 때 System.out.println("더 이상 등록할 수 없습니다."); }else { String[] boardArrVar = new String[4]; // 등록할 입력 값 배열 선언 boardArrVar[0] = String.valueOf(seq); // 등록할 게시물 번호 추가 System.out.println(boardArrVar[0] + "번의 등록할 제목을 입력하세요."); boardArrVar[1] = sc.next(); // 등록할 제목 입력 System.out.println(boardArrVar[0] + "번의 등록할 내용을 입력하세요."); boardArrVar[2] = sc.next(); // 등록할 내용 입력 System.out.println(boardArrVar[0] + "번의 등록할 추가정보를 입력하세요."); boardArrVar[3] = sc.next(); // 등록할 추가정보 입력 boardArr[boardArrCnt] = boardArrVar; // 등록 값 배열에 저장 System.out.println("등록완료되었습니다."); seq++; boardArrCnt++; } }else if(choice.equals("2")) { System.out.println("전체조회입니다."); if (boardArrCnt == 0) { // 등록된 값이 없을 때 System.out.println("등록된 값이 없습니다."); }else { for(int i=0; i < boardArrCnt; i++) { System.out.println(boardArr[i][0] + "번에 등록된 내용은 다음과 같습니다."); System.out.println("이름 = > [" + boardArr[i][1] + "] 내용 = > [" + boardArr[i][2] + "] 추가정보 = > [" + boardArr[i][3] + "]"); } System.out.println("조회가 끝났습니다."); } }else if(choice.equals("3")) { System.out.println("선택조회입니다."); if (boardArrCnt == 0) { // 등록된 값이 없을 때 System.out.println("등록된 값이 없습니다."); }else { System.out.println("선택조회할 번호를 입력하세요."); String searchVal = sc.next(); // 조회할 번호 입력 boolean searchBoo = false; // 조회 여부 for(int i=0; i < boardArrCnt; i++) { if(boardArr[i][0].equals(searchVal)) { // 배열에 저장되어 있는 게시물 번호와 조회 값이 같을 때 System.out.println(boardArr[i][0] + "번의 값은 다음과 같습니다."); System.out.println("이름 = > [" + boardArr[i][1] + "] 내용 = > [" + boardArr[i][2] + "] 추가정보 = > [" + boardArr[i][3] + "]"); searchBoo = true; // 조회 성공 break; } } if(searchBoo==false) { // 조회 실패일 때 System.out.println("선택한 값은 없습니다."); } } }else if(choice.equals("4")) { System.out.println("수정란입니다."); if (boardArrCnt == 0) { // 등록된 값이 없을 때 System.out.println("등록된 값이 없습니다."); }else { System.out.println("선택조회할 번호를 입력하세요."); String searchVal = sc.next(); // 조회할 번호 입력 boolean searchBoo = false; // 조회 여부 for(int i=0; i < boardArrCnt; i++) { if(boardArr[i][0].equals(searchVal)) { // 배열에 저장되어 있는 게시물 번호와 조회 값이 같을 때 System.out.println(boardArr[i][0] + "번의 값은 다음과 같습니다."); System.out.println("이름 = > [" + boardArr[i][1] + "] 내용 = > [" + boardArr[i][2] + "] 추가정보 = > [" + boardArr[i][3] + "]"); System.out.println("수정이 시작됩니다."); String[] boardArrVar = new String[4]; boardArrVar[0] = boardArr[i][0]; System.out.println(boardArrVar[0] + "번의 수정할 제목을 입력하세요."); boardArrVar[1] = sc.next(); System.out.println(boardArrVar[0] + "번의 수정할 내용을 입력하세요."); boardArrVar[2] = sc.next(); System.out.println(boardArrVar[0] + "번의 수정할 추가정보를 입력하세요."); boardArrVar[3] = sc.next(); boardArr[i] = boardArrVar; // 수정 값 배열에 저장 System.out.println("수정이 완료되었습니다."); searchBoo = true; // 수정 성공 break; } } if(searchBoo==false) { // 조회 실패일 때 System.out.println("선택한 값은 없습니다."); } } }else if(choice.equals("5")) { System.out.println("삭제란입니다."); if (boardArrCnt == 0) { // 등록된 값이 없을 때 System.out.println("등록된 값이 없습니다."); }else { System.out.println("선택조회할 번호를 입력하세요."); String searchVal = sc.next(); // 조회할 번호 입력 boolean searchBoo = false; // 조회 여부 for(int i=0; i < boardArrCnt; i++) { if(boardArr[i][0].equals(searchVal)) { // 배열에 저장되어 있는 게시물 번호와 조회 값이 같을 때 System.out.println(boardArr[i][0] + "번의 값은 다음과 같습니다."); System.out.println("이름 = > [" + boardArr[i][1] + "] 내용 = > [" + boardArr[i][2] + "] 추가정보 = > [" + boardArr[i][3] + "]"); System.out.println("해당 값을 삭제하시겠습니까? Y[예] // N[아니오]"); String deleteChoice = sc.next(); // 삭제 여부 입력 if(deleteChoice.equals("Y")) { // 삭제 선택일 때 boardArr[i] = null; // 해당 선택값 null boardArrCnt--; // 배열에 추가하기 위해 인덱스 번호 감소 for(int j=i; j < boardArrCnt; j++) { // 배열에서 삭제 선택 값 부터 저장되어진 최대값까지 반복 if(boardArrCnt == 0) { // 삭제 후 저장되어진 값이 없을 때 break; } boardArr[j] = boardArr[j+1]; // 삭제 후 로직 실행 boardArr[j+1] = null; } System.out.println("삭제완료되었습니다."); }else { // 삭제 취소일 때 System.out.println("삭제가 취소되었습니다."); } searchBoo = true; // 조회 성공 break; } } if(searchBoo==false) { // 조회 실패일 때 System.out.println("선택한 값은 없습니다."); } } }else if(choice.equals("0")) { System.out.println("종료되었습니다."); break; }else { // 모드 선택값이 없을 때 System.out.println("잘못선택하셨습니다."); continue; } } } } | cs |
[ 게시판 소스 결과 - 등록 ]
- 게시물이 등록되는 것을 보여줍니다.
1. 등록 2. 전체조회 3. 선택조회 4. 수정 5. 삭제 0. 종료 1 등록란입니다. 1번의 등록할 제목을 입력하세요. TitleFirst 1번의 등록할 내용을 입력하세요. Content 1번의 등록할 추가정보를 입력하세요. PlusValue 1. 등록 2. 전체조회 3. 선택조회 4. 수정 5. 삭제 0. 종료 1 등록란입니다. 등록완료되었습니다. 2번의 등록할 제목을 입력하세요. Second 2번의 등록할 내용을 입력하세요. Cc 2번의 등록할 추가정보를 입력하세요. 없음. 등록완료되었습니다. | cs |
- 게시물이 최대치가 되었을 때 내용입니다.
1. 등록 2. 전체조회 3. 선택조회 4. 수정 5. 삭제 0. 종료 1 등록란입니다. 더 이상 등록할 수 없습니다. | cs |
[ 게시판 소스 결과 - 전체조회 ]
- 게시물들이 저장된 내용들을 보여줍니다.
1. 등록 2. 전체조회 3. 선택조회 4. 수정 5. 삭제 0. 종료 2 전체조회입니다. 1번에 등록된 내용은 다음과 같습니다. 이름 = > [TitleFirst] 내용 = > [Content] 추가정보 = > [PlusValue] 2번에 등록된 내용은 다음과 같습니다. 이름 = > [Second] 내용 = > [Cc] 추가정보 = > [없음.] 3번에 등록된 내용은 다음과 같습니다. 이름 = > [Main] 내용 = > [내용] 추가정보 = > [추가할] 4번에 등록된 내용은 다음과 같습니다. 이름 = > [4번제목] 내용 = > [내용은] 추가정보 = > [없음.] 5번에 등록된 내용은 다음과 같습니다. 이름 = > [5번제목] 내용 = > [내용입니다.] 추가정보 = > [010-2222-XXXX] 조회가 끝났습니다. | cs |
[ 게시판 소스 결과 - 선택조회 ]
- 선택하여 조회한 내용을 보여줍니다.
1. 등록 2. 전체조회 3. 선택조회 4. 수정 5. 삭제 0. 종료 3 선택조회입니다. 선택조회할 번호를 입력하세요. 1 1번의 값은 다음과 같습니다. 이름 = > [TitleFirst] 내용 = > [Content] 추가정보 = > [PlusValue] | cs |
[ 게시판 소스 결과 - 수정 ]
- 선택하여 수정한 내용을 보여줍니다.
1. 등록 2. 전체조회 3. 선택조회 4. 수정 5. 삭제 0. 종료 4 수정란입니다. 선택조회할 번호를 입력하세요. 1 1번의 값은 다음과 같습니다. 이름 = > [TitleFirst] 내용 = > [Content] 추가정보 = > [PlusValue] 수정이 시작됩니다. 1번의 수정할 제목을 입력하세요. First수정 1번의 수정할 내용을 입력하세요. 내용없음 1번의 수정할 추가정보를 입력하세요. 추가정보없음 수정이 완료되었습니다. | cs |
- 수정 된 내용입니다.
1번의 값은 다음과 같습니다. 이름 = > [First수정] 내용 = > [내용없음] 추가정보 = > [추가정보없음] | cs |
[ 게시판 소스 결과 - 삭제 ]
- 선택하여 삭제한 내용을 보여줍니다. (편의를 위해 첫번째와 마지막 값만을 삭제하였습니다.)
1. 등록 2. 전체조회 3. 선택조회 4. 수정 5. 삭제 0. 종료 5 삭제란입니다. 선택조회할 번호를 입력하세요. 1 1번의 값은 다음과 같습니다. 이름 = > [First수정] 내용 = > [내용없음] 추가정보 = > [추가정보없음] 해당 값을 삭제하시겠습니까? Y[예] // N[아니오] Y 삭제완료되었습니다. | cs |
1. 등록 2. 전체조회 3. 선택조회 4. 수정 5. 삭제 0. 종료 5 삭제란입니다. 선택조회할 번호를 입력하세요. 5 5번의 값은 다음과 같습니다. 이름 = > [5번제목] 내용 = > [내용입니다.] 추가정보 = > [010-2222-XXXX] 해당 값을 삭제하시겠습니까? Y[예] // N[아니오] Y 삭제완료되었습니다. | cs |
- 삭제 후 내용을 보여줍니다.
전체조회입니다. 2번에 등록된 내용은 다음과 같습니다. 이름 = > [Second] 내용 = > [Cc] 추가정보 = > [없음.] 3번에 등록된 내용은 다음과 같습니다. 이름 = > [Main] 내용 = > [내용] 추가정보 = > [추가할] 4번에 등록된 내용은 다음과 같습니다. 이름 = > [4번제목] 내용 = > [내용은] 추가정보 = > [없음.] 조회가 끝났습니다. | cs |
- 삭제 후 정상적으로 등록되어지는 내용입니다.
등록란입니다. 6번의 등록할 제목을 입력하세요. 삭제후추가 6번의 등록할 내용을 입력하세요. 내용없음 6번의 등록할 추가정보를 입력하세요. 010-5555-XXXX 등록완료되었습니다. 전체조회입니다. 2번에 등록된 내용은 다음과 같습니다. 이름 = > [Second] 내용 = > [Cc] 추가정보 = > [없음.] 3번에 등록된 내용은 다음과 같습니다. 이름 = > [Main] 내용 = > [내용] 추가정보 = > [추가할] 4번에 등록된 내용은 다음과 같습니다. 이름 = > [4번제목] 내용 = > [내용은] 추가정보 = > [없음.] 6번에 등록된 내용은 다음과 같습니다. 이름 = > [삭제후추가] 내용 = > [내용없음] 추가정보 = > [010-5555-XXXX] 조회가 끝났습니다. | cs |
[ 게시판 소스 결과 - 예외 화면 ]
- 등록된 값이 없을 때와 선택 시 존재하지 않을 때의 결과 화면입니다.
전체조회입니다. 등록된 값이 없습니다. 선택조회입니다. 선택조회할 번호를 입력하세요. 10 선택한 값은 없습니다. | cs |
'Development > JAVA' 카테고리의 다른 글
[JAVA] Collection,Map 정리 (0) | 2016.09.02 |
---|---|
[JAVA] 게시판 예제 - 2 (배열 복사) (0) | 2016.08.29 |
[JAVA] Scanner 문자열 입력 (0) | 2016.08.24 |
[JAVA] 배열 (0) | 2016.08.24 |
[JAVA] 데이터 타입 (0) | 2016.08.18 |