Java 개념

문자열 비교

ron_nie 2023. 6. 19. 15:39
728x90
s1.equals(s2) // false

1. 문자열 비교

String s1 = "Java";
String s2 = "Python";

이런 문자열이 있다고 하자. 두 문자가 같은지 비교하는 방법이다.

1-1. equals

s1.equals(s2) // false

두 문자열이 같은 문자열인지 판단해준다. 이 방법은 대소문자도 파악을 해준다

1-2. equalsIgnoreCase

s1.equalsIgnoreCase('java') // true

대소문자를 구분하지 않고 구별해준다

2. 문자열 비교 심화

s1 = "1234";
s2 = "1234";

이렇게 두개의 문자열이 있다고 가정해보자.

s1.equals(s2) // true
s1 == s2 // true

같은 단어이기 때문에 equals 메소드를 사용한 결과는 true가 맞다. 하지만 밑의  s1 == s2에서 의문이 들 수 있다. 분명 다른 변수인데 두개의 변수는 같다고 나오기 때문. 이것은 "1234"라는 문자열을 s1과 s2를 참조하고 있기 때문이다. 보통 같은 곳을 바라보고 있다고 한다.

https://velog.io/@rowooncoding/Reference-data-type

 

Reference data type

변수에 값이 그대로 저장됨예) 문자, 숫자 자료형객체, 배열변수에 참조가 저장된다(저번에 배웠다)참조에 의한 복사는 저번 글에 자세히 설명 했으니 생략하겠음객체의 프로퍼티를 재할당 하

velog.io

자바스크립트에도 비슷한 부분이 있다.

그럼 s1과 s2를 다른 변수로 만들고 싶으면 어떻게 해야할까

s1 = new String ("1234")
s2 = new String ("1234")

s1.equals(s2) // true
s1 == s2 // false

new 키워드를 붙여서 만들면 우리가 생각한 결과가 나온다. 

new가 무엇인지는 나중에 다시 설명하도록 하고 오늘은 equals가 어떤 메소드인지를 기억해두자

반응형