본문 바로가기

JAVA

(3)
[JAVA] indexOf() 분석해보기 소스 분석 중에 신기한 코드를 보게 되었다. 이걸 이렇게 쓴다고..? 경험이 부족해서 그런 건지 새로운 사용법이 신기할 따름이었다. 나중에 참고하기 위해 제대로 분석해보기로 했다! 오늘의 주제는 indexOf String 클래스의 특정 문자를 찾아서 index를 반환해주는 메서드이다. String str = "abcd"; str.indexOf("a") // 0 str.indexOf("b") // 1 str.indexOf("z") // -1 특정 문자가 있으면 해당 index 위치를 반환, 없으면 -1을 반환한다. String code = "A01"; // code = A01, A02, B01, B02 if(code.indexOf("A") != -1) { // A코드일때 처리 } 일반적으로 실무에서는 이런..
[JAVA] 문자열 비교 equals 와 == 의 차이점 이번 주제는 문자열 비교 시 == 와 equals 의 차이점! equals에 대한 내용을 좀 더 추가해보려고 한다. 자바스크립트 하던 습관으로 문자열 비교는 자연스럽게 == 연산자를 사용한다. 근데 자바로는 하면 안되는 이유가 뭔데?! 살펴보자.. 자바를 잘 모른다면 "문자열 같음" 이 출력된다고 생각할 수 있다! 하지만.. 결과는 "문자열 다름" !! a와 b의 주소값은 다른것을 확인했다. 주소값이 같으면 어찌될까? 이 예시로 알 수 있는점은 == 연산자는 객체의 주소를 비교하는 것! 문자열 비교로 사용 할 순 없었다. 그렇다면 equals 는? 주소가 다르더라도 문자열이 같으면 true로 반환된다. 간단한 예시로 문자열 비교 시 == 와 equals의 차이점을 알아봤다!
[JAVA] 문자열 비교 equals() 제대로 사용하기 이직 후 첫 업무를 맡게 되었다! 특정 코드에 대해서 분기 처리하여 알맞은 문구를 보여주는 것이었다. 단순한 분기 처리여서 너무 쉬운데..? // String code = ? if(code.equals("AB01")) { // 문구 처리 } else { // 문구 처리 } 이렇게 하고 혼자 뿌듯해하고 있었다. 그런데 지나가던 팀장님이 한마디 해주셨다. "이거 ~~ 해야 하지 않나?" 앗! 오랜만의 자바라서 헷갈렸나 보다ㅠㅠ 팀장님의 말씀으로 나의 실수를 인지하고 그 이후에 수정한 줄 알았다.. 하지만 그대로 진행해버려서 시스템에 의해서 다시 한번 문제점을 지적받게 되었다! (바보) 뭐가 문제였을까? 만약 code 값이 null 이라면 어떻게 될까? null에는 equals도 없고.. 아무것도 없다 ㅠㅠ ..