본문 바로가기

프로그래밍/Java

문자열 비교

String객체에서

같은 문자열을 만들 때

java는 먼저 만들어져 있는 객체를 참조해서

같은 주소를 가리키기 때문에 비교 연산자를 했을 때 True가 나온다

 

하지만  new String()으로 새로운 객체를 만들었을 때는

다른 객체 즉 다른 주소를 가리키기 때문에 False가 나온다

 

이때 다른 객체이지만 문자열의 값만 비교하려면

equals()를 쓴다

import java.util.Scanner;
public class Note{
    public static void main(String[] args){
        String str1="홍길동";
        String str2="홍길동";
        String str3=new String("홍길동");
        if(str1==str2){
            System.out.println("str1과 2는 참조 번지가 같음");
        }
        else{
            System.out.println("str1과 2는 참조 번지가 다름");
        }
        
        if(str2!=str3){
            System.out.println("str2와 3은 참조 객체가다름");
        }
        else{
            System.out.println("str2와 3은 참조 번지가 같음");
        }
        
        if(str2.equals(str3)){
            System.out.println("str2와 3의 문자열은 같음");
        }
        else{
            System.out.println("str2와 3의 문자열은 같음");
        }
    }
}

 

결과

'프로그래밍 > Java' 카테고리의 다른 글

this  (0) 2019.11.11
객체  (0) 2019.11.11
문자열과 배열  (0) 2019.11.11
향상된 for문  (0) 2019.11.11
Scanner  (0) 2019.11.11