최근 들어 자바란 아이에게 신경을 별로 쓰지 못 했다. ㅎㅎ
생각 없이 코딩을 하던 중 String 비교를 하는데 비교가 되지 않아서 equals 함수를 써서 해결을 했다. 무심했던 것 일까...
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
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
프로그램을 종료 합니다.
심플한 게시판이 실행 되는 것을 확인 할 수 있다.
긴 글을 읽어 주셔서 감사합니다.
'Java' 카테고리의 다른 글
Java Console 게시판 만들기 - 3 (0) | 2013.11.12 |
---|---|
Java Console 게시판 만들기 - 2 (0) | 2013.11.11 |
실행 시 Exception in thread "main" java.lang.UnsupportedClassVersionError: httpsclient : Unsupported major.minor version 51.0 해결 하기 (0) | 2013.04.24 |
JDBC로 Query 작성하기 (Mysql) (0) | 2012.12.19 |
Date 함수 관련 (0) | 2012.12.03 |