Java Console 게시판 만들기


최근 들어 자바란 아이에게 신경을 별로 쓰지 못 했다. ㅎㅎ

생각 없이 코딩을 하던 중 String 비교를 하는데 비교가 되지 않아서 equals 함수를 써서 해결을 했다. 무심했던 것 일까...


test.java

public class test {
  public static void main(String[] args) {

    String a = "test";
    String b = "test";
    String c = new String("test");
    String d = new String("test");

    System.out.println("a: " + System.identityHashCode(a));
    System.out.println("b: " + System.identityHashCode(b));
    System.out.println("c: " + System.identityHashCode(c));
    System.out.println("d: " + System.identityHashCode(d));

    System.out.println("a == b: " + (a == b));
    System.out.println("a equals b: " + a.equals(b));
    System.out.println("c == d: " + (c == d));
    System.out.println("c equals d: " + c.equals(d));
  }
}

실행 결과

a: 1579880541
b: 1579880541
c: 1564441079
d: 1918924532
a == b: true
a equals b: true
c == d: false
c equals d: true

c == d 부분을 보면 hash 값이 다른 것을 볼 수 있다. 당연히 주소 값을 비교 하기 때문이다. 뻘짓을 하다니 완전 좌절 했다. ㅋ


게시판을 만들어 보자 


기능 정의

게시글의 최대 수는 9개로 제한 한다. 아래는 세부 기능 이다.


1.  등록

2.  상세 보기

3.  수정

4.  삭제

5.  리스트 보기

6.  종료


Sample

게시 글 항목은 번호, 제목, 내용 간단하게 3가지로 간다.


no: 1

title: title

content: content

 

Code

bbs.java

import java.util.Scanner;

public class bbs {
  
  public static void main(String[] args) {
   
  	Scanner s = new Scanner(System.in);

	String[][] bbses = new String[9][];
	int seq = 1;
	int gindex = 0;

	while(true) {
			
		System.out.println("1. create, 2. read, 3. update, 4. delete, 5. list, x. exit");

		String choice = s.next();

		if (choice.equals("1")) {
				
			if (gindex == bbses.length) {
				System.out.println("게시글이 꽉 찼습니다.\n삭제 후 이용해 주세요.");
				continue;
			}

			String no = String.valueOf(seq);
				
			System.out.println("input title...");
			String title = s.next();

			System.out.println("input content...");
			String content = s.next();

			String[] bbs = new String[3];
			bbs[0] = no;
			bbs[1] = title;
			bbs[2] = content;

			bbses[gindex++] = bbs;
			seq++;

			System.out.println("Complete...");
		} else if (choice.equals("2")) {
				
			System.out.println("input no...");
			String no = s.next();					
				
			boolean flag = false;		

			for (String[] bbs : bbses) {
				if (bbs != null && bbs[0].equals(no)) {
					System.out.println("no: " + bbs[0]);
					System.out.println("title: " + bbs[1]);
					System.out.println("content: " + bbs[2]);
					flag = true;
					break;
				}
			}

			if (!flag) {
				System.out.println("게시글이 없습니다.");
			}
		} else if (choice.equals("3")) {
				
			System.out.println("input no...");
			String no = s.next();					
				
			boolean flag = false;		

			for (String[] bbs : bbses) {
				if (bbs != null && bbs[0].equals(no)) {
					System.out.println("input title...");
					String title = s.next();

					System.out.println("input content...");
					String content = s.next();

					bbs[1] = title;
					bbs[2] = content;

					flag = true;
					break;
				}
			}
				
			if (flag) {
				System.out.println("Complete...");
			} else {
				System.out.println("게시글이 없습니다.");
			}
		} else if (choice.equals("4")) {

			System.out.println("input no...");
			String no = s.next();					
				
			int index = -1;			
			boolean flag = false;		
				
			if (gindex == 0) {
				System.out.println("입력된 게시글이 없습니다.");
				continue;
			}

			for (int i=0; i<bbses.length; i++) {
				String[] bbs = bbses[i];

				if (bbs != null && bbs[0].equals(no)) {
					bbses[i] = null;
					index = i;
					gindex--;
					flag = true;
					break;
				}
			}
				
			if (flag) {
					
				int length = bbses.length;				

				for (int i=0; i<length; i++) {
						
					if (index == 0) {
						break;
					}

					if (index == length-1) {
						break;
					}					

					if (i > index) {
						if (i < length) {
							bbses[i-1] = bbses[i];
							bbses[i] = null;
						}
					}
				}

				System.out.println("Complete...");
			} else {
				System.out.println("게시글이 없습니다.");
			}

		} else if (choice.equals("5")) {
			for (int i=0; i<bbses.length; i++) {
				if (bbses[i] == null) continue;				

				System.out.println("index: " + i);
				System.out.println("no: " + bbses[i][0]);
				System.out.println("title: " + bbses[i][1]);
				System.out.println("content: " + bbses[i][2]);
			}			
		} else if (choice.equals("x")) {
			System.out.println("프로그램을 종료 합니다.");
			break;
		} else {
			System.out.println("잘못 입력 하셨습니다.\n다시 입력해 주십시오.");
		}
	}	
  }
}

실행 결과


1. create, 2. read, 3. update, 4. delete, 5. list, x. exit

1

input title...

111

input content...

222

Complete...

1. create, 2. read, 3. update, 4. delete, 5. list, x. exit

1

input title...

333

input content...

444

Complete...

1. create, 2. read, 3. update, 4. delete, 5. list, x. exit

1

input title...

555

input content...

666

Complete...

1. create, 2. read, 3. update, 4. delete, 5. list, x. exit

5

index: 0

no: 1

title: 111

content: 222

index: 1

no: 2

title: 333

content: 444

index: 2

no: 3

title: 555

content: 666

1. create, 2. read, 3. update, 4. delete, 5. list, x. exit

x

프로그램을 종료 합니다.


심플한 게시판이 실행 되는 것을 확인 할 수 있다.


긴 글을 읽어 주셔서 감사합니다. 


신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Designed by CMSFactory.NET