ABOUT ME

느리지만 포기하지 않는, 상승곡선을 그리는 아기 개발자 블로그

Today
Yesterday
Total
  • Java 문자열 비교 equals() + == 과의 차이점
    JAVA/JAVA 문법 2024. 1. 6. 15:39

    자바 문자열 비교 equals() 메소드는 객체끼리의 내용 비교 .

    비교를 위한 연산자 == 은 주소의 값을 비교  

     

    public class Main {
        public static void main(String[] args) {
            String str1 = "abc";
            String str2 = str1;
            String str3 = new String("abc");
    
            // == 연산자는 주소를 비교합니다.
            System.out.println(str1 == str2); // true
            // str2 에 st1 값을 넣었으므로 주소를 같이 공유합니다.
    
            System.out.println(str1 == str3); // false
            // str1 과 str3는 각각 생성 되었으므로 주소가 다릅니다.
    
            // equals() 는 내용을 비교합니다.
            System.out.println(str1.equals(str2)); // ture
            System.out.println(str1.equals(str3)); // true
            // 내용을 비교하기떄문에 abc 내용이 같으므로 true 가 반환됩니다.
        }
    }

    str1 == str2

    -> 같은 주소를 사용하고 있기 때문에 true

    str1 == str3

    -> str3에 new String으로 새로운 주소를 부여해 주소비교로 인한 false

    str1.equals(str2)

    -> 내용 비교라 내용이 같아서 true

    str1.equals(str3)

    -> 내용 비교라 같아서 true

     

     


     

     

    equals()로 null 체크

    public class Main {
        public static void main(String[] args) {
    
            String a = "2";
            String b = "";
    
            if (!"".equals(a)){
                System.out.println("공백이 아닙니다.");
            }
            if ("".equals(b)){
                System.out.println("공백입니다.");
            }
        }
    }

     

     


     

    * 프로그래머스 0단계 [PCCE 기출문제] 3번 / 나이 계산

    import java.util.Scanner;
    
    public class Solution {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int year = sc.nextInt();
            String age_type = sc.next();
            int answer = 0;
    
            if (age_type.equals("Korea")) {
                answer = 2030-year+1;
            }
            else if (age_type.equals("Year")) {
                answer = 2030-year;
            }
            System.out.println(answer);
        }
    }

     

     

     


     

     

    Python에서는 ==를 사용하여 문자열의 값을 비교

    is를 사용하여 두 객체의 메모리 주소 비교 (Java의 equals()와 비슷)

    -> 헷갈린다 ,,, ㅠ

Designed by Tistory.