본문 바로가기
자바

문자열을 Java에서 어떻게 비교합니까?

by º기록 2021. 4. 11.
반응형

나는 지금까지 모든 문자열을 비교하기 위해 내 프로그램에서 == 연산자를 사용해 왔습니다. 그러나 버그로 도달하고 .equals () 로 바뀌었고 버그가 수정되었습니다.

== 나쁜가요?언제해야하며 사용하지 않아야합니까?차이점이 뭐야?

 

해결 방법

 

== 참조 평등을위한 테스트 (동일한 객체인지 여부).

.equals () 가치 평등에 대한 테스트 (논리적으로 "동등한"인지 여부).


결과적으로 두 문자열의 값이 같은 값을 테스트하려는 경우 objects.equals () 를 사용하려는 것입니다.

// These two have the same value
new String("test").equals("test") // --> true 

// ... but they are not the same object
new String("test") == "test" // --> false 

// ... neither are these
new String("test") == new String("test") // --> false 

// ... but these are because literals are interned by 
// the compiler and thus refer to the same object
"test" == "test" // --> true 

// ... string literals are concatenated by the compiler
// and the results are interned.
"test" == "te" + "st" // --> true

// ... but you should really just call Objects.equals()
Objects.equals("test", new String("test")) // --> true
Objects.equals(null, "test") // --> false
Objects.equals(null, null) // --> true







 

참조 페이지 https://stackoverflow.com/questions/513832

 

 

반응형

댓글