-
[JAVA] String 변수 값이 같은지 확인할 때는 equals()를 사용하자(쓰지마 ==)Java 2022. 11. 23. 16:22
배열을 for문 돌려서 특정 값과 같은 객체를 뽑아서 핸들링 하려는 과정이 있을 것이다.
예를 들어 아래와 같다.
if(value == data.get(i).value){ return true; }else if(value != data.get(i).value){ return false; }
이런 경우 if문이 문제없이 돌아갈 때도 있지만 때때로 'value == data.get(i).value' 가 분명 맞는데도 '같지않다(!=)'라고 될 때가 있다.
그 이유는 String 변수는 그 값이 설정된 위치를 가르키는 참조형 연산자라 인스턴스가 같은지를 비교해서 그런 것이다.
그래서 값을 비교할 때는 == 보다는 equals를 이용해 String을 비교하는게 더 정확하다.
if(data.get(i).value.equals(value)){ return true; }else { return false; }
'Java' 카테고리의 다른 글
[JAVA] 숫자 Stream 조건걸고 만드는 여러가지 방법 (0) 2022.12.01 [JAVA] null 예외를 깔끔하게 해주는 Optional 클래스 (0) 2022.12.01 [JAVA] Scanner nextInt()는 '엔터'를 인식할 수 없다 (0) 2022.11.23 [JAVA] 변수 타입 확인하기 (0) 2022.11.23 Arrays.asList vs List.of 차이 (0) 2022.11.22