|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


3198, 1/160 |
![]() |
![]() |
![]() |
![]() |
|
ksbgenius | ||||||
|
자바 도서검색 프로그래밍 | ||||||
|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=6312 [복사]
Hit : 6338 Date : 2013/03/10 06:55
|
|||||||
| ![]() |
| |
| dwdwzzz | http://westzero.net/21 equals == 차이같네요 |
2013/03/11 | |
| $Zero | 사용하신 if문은 자바의 해쉬값을 비교하는 일을 하게 됩니다. 자바에선 그렇게 사용하시면 안되요 ~ 사용하신 if문의경우 예를들면 c[0] = 0x92931 , bookname = 0x91912 이런걸 비교하게 되는 것 입니다. C에서 사용하는 포인터 주소값 처럼 자바도 해쉬값이라고 해서 포인터처럼 각 변수의 주소를 가지고 있고 스트링 변수또한 예외없이 사용하고 있어요 . 즉, 같은 문자열이라도 서로 해쉬값이 달라서 매번 false를 반환하며 없다고 뜨는거구요 . 이 문제를 해결하려면 문자열을 직접 비교하는 String 클래스의 compareTo 메소드를 사용하셔야 합니다. c[0].compareTo(bookname) == 0 if문 조건을 이걸로 바꿔보세요 compareTo 메소드는 인자로 들어간 문자열이 메소드를 실행한 스트링 변수와 일치할 경우 0을 반환하는 메소드입니다. |
2013/03/12 | |
|
|