어제 오늘 내일

[Java String] equals() vs equalsIgnoreCase() – 문자열 비교하기 본문

IT/Java

[Java String] equals() vs equalsIgnoreCase() – 문자열 비교하기

hi.anna 2025. 9. 18. 12:41

자바에서 문자열이 같은지 비교할 때는 == 대신 equals() 메서드를 써야 한다는 건 많이 알려져 있습니다.
하지만 대소문자를 구분하지 않고 비교해야 할 때는 equalsIgnoreCase()를 쓰면 훨씬 편리합니다.

 

1. equals()

public boolean equals(Object anObject)
  • 두 문자열이 완전히 동일할 때만 true
  • 대소문자를 구분함
String s1 = "Java";
String s2 = "Java";
String s3 = "java";

System.out.println(s1.equals(s2)); // true
System.out.println(s1.equals(s3)); // false (대소문자 다름)

👉 "Java""java"는 다른 문자열로 취급합니다.

 

2. equalsIgnoreCase()

public boolean equalsIgnoreCase(String anotherString)
  • 문자열을 비교할 때 대소문자를 무시
  • "Java", "JAVA", "java" 모두 같은 문자열로 본다
String s1 = "Hello";
String s2 = "HELLO";

System.out.println(s1.equals(s2));            // false
System.out.println(s1.equalsIgnoreCase(s2));  // true

👉 대소문자를 구분하지 않아야 할 때 매우 유용합니다.

 

3. 실전 활용 예제

사용자 입력 비교

Scanner sc = new Scanner(System.in);
System.out.print("계속하시겠습니까? (yes/no): ");
String input = sc.nextLine();

if (input.equalsIgnoreCase("yes")) {
    System.out.println("프로그램을 계속 실행합니다.");
}

👉 "yes", "YES", "Yes" 등 어떤 형태로 입력해도 인식 가능.

파일 확장자 체크

String filename = "report.PDF";

if (filename.endsWith(".pdf") || filename.endsWith(".PDF")) {
    System.out.println("PDF 파일입니다.");
}

이 코드를 equalsIgnoreCase()와 함께 쓰면 더 깔끔하게 처리 가능:

if (filename.toLowerCase().endsWith(".pdf")) {
    System.out.println("PDF 파일입니다.");
}

혹은 비교 문자열 자체를 equalsIgnoreCase()로 검사하는 방식도 가능.

 

4. 정리

  • equals() → 문자열이 정확히 같을 때만 true
  • equalsIgnoreCase() → 대소문자 구분 없이 같으면 true
  • 사용자 입력, 확장자 비교 등 대소문자를 무시해야 하는 상황에서는 equalsIgnoreCase()를 쓰는 게 더 적절

👉 대소문자까지 정확히 비교할 땐 equals(), 무시하고 비교할 땐 equalsIgnoreCase().

 

 

반응형
Comments