String one = "one"
String two = "two"
String var1 = "one";
String var2 = "Two";
if(one.equals(var1)){
//같음
}
if(one.equals(two)){
//다름
}
if(two.equals(var2)){
//다름
}
if(one==var1){
//같음 (하지만 ==은 문자열의 내용을 직접 비교하지 않음)
}
if(two.equalsIgnoreCase(var2)){
//같음
}
자바에서 문자열 비교는 꽤 쉬운편. == 를 사용하면 안된다는 점 명심.
자바에서 비교연산자(==)은 문자열의 내용이 아니라 객체 참조를 비교하기 때문이다.
*객체 참조란?
자바에서 "객체 참조"는 객체가 생성될 때 메모리에서 할당된 실제 객체의 위치를 나타내는 값입니다. 객체 참조는 일종의 포인터로서, 해당 객체의 메모리 주소를 가리키며 객체에 접근하는 방법을 제공합니다.
자바에서 모든 객체는 힙(heap) 메모리에 생성되며, 변수는 이 객체의 참조(메모리 주소)를 저장합니다. 이 때문에 자바는 "참조 타입"이라고도 불리는데, 객체를 직접 변수에 저장하는 것이 아니라 변수에는 객체의 위치를 가리키는 값, 즉 객체의 참조가 저장됩니다.
equals()
비교하는 문자열들이 같은 객체를 참조하는지 확인하고 같은 객체를 참조하면 참을 반환.
같은 객체를 참조하지 않으면 서로 비교되는 문자열이 정확히 같은 값을 갖는지 확인하기 위해 문자열을 하나씩 비교
단, 두 문자열의 대소문자가 다르다면 같지 않음을 뱉어낸다.
equalsIgnoreCase()
equals() 메서드는 대소문자가 다를 경우 두 문자열이 같지 않다고 결과를 내준다.
대소문자를 구분하지 않고 두 값이 일치 하는지를 알기 위해선 equalsIgnoreCase() 함수 사용해주면 됨.
compareTo() 와 compareToIgnoreCase()
문자열을 사전순으로 비교. 이들은 문자열에 포함된 각 문자의 유니코드 값에 기반하여 문자열 비교
메서드가 호출된 문자열이 인자로 주어진 문자열보다 사전순으로 앞설 경우 음수를 반환. 반대일 경우에 양수반환
'LANGUAGE > JAVA' 카테고리의 다른 글
JAR란?[아카이브파일,메타데이터,자바,이클립스] (0) | 2023.08.22 |
---|---|
자바(JAVA) 프로그래밍 [컴파일러,바이트코드,JVM] (0) | 2023.08.22 |
JDK(Java Development Kit)/JRE(Java Runtime Environment)란 (2) | 2023.08.22 |
[HTML/CSS/JS] Input , textarea 대신 contenteditable="true" 사용 (0) | 2022.12.28 |
[ JAVA ] - 변수개념, 자료형 (2) | 2022.12.21 |