반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- json
- input
- javascript
- vscode
- table
- 이탈리아
- 자바
- Visual Studio Code
- CMD
- html
- string
- Array
- CSS
- 정규식
- 배열
- Eclipse
- date
- HashMap
- Java
- 문자열
- js
- IntelliJ
- 이클립스
- ArrayList
- map
- replace
- Button
- list
- 자바스크립트
- 인텔리제이
Archives
- Today
- Total
어제 오늘 내일
[Java String] compareTo() vs compareToIgnoreCase() – 문자열 사전순 비교 본문
문자열이 같은지 여부만 비교하는 equals()와 달리, compareTo()는 두 문자열을 사전식(lexicographical) 순서로 비교합니다.
정렬, 검색, 정렬 기준(Comparator) 구현 등에 자주 쓰입니다.
1. compareTo()
public int compareTo(String anotherString)
- 두 문자열을 비교하여 정수 값을 반환
- 같으면
0 - 현재 문자열이 더 앞서면 음수
- 현재 문자열이 더 뒤면 양수
- 같으면
String s1 = "Apple";
String s2 = "Banana";
String s3 = "Apple";
System.out.println(s1.compareTo(s2)); // 음수 (Apple < Banana)
System.out.println(s2.compareTo(s1)); // 양수 (Banana > Apple)
System.out.println(s1.compareTo(s3)); // 0 (같음)
👉 compareTo()는 대소문자를 구분합니다. "Apple"과 "apple"은 다른 값으로 취급됩니다.
System.out.println("Apple".compareTo("apple")); // 음수
2. compareToIgnoreCase()
public int compareToIgnoreCase(String str)
compareTo()와 동일하지만 대소문자를 구분하지 않음
String s1 = "Java";
String s2 = "java";
System.out.println(s1.compareTo(s2)); // 음수 (대문자 J < 소문자 j)
System.out.println(s1.compareToIgnoreCase(s2)); // 0 (대소문자 무시)
👉 대소문자 관계없이 알파벳 순서만 따질 때 유용합니다.
3. 정렬에 활용
compareTo()는 정렬 기준으로 자주 사용됩니다.
List<String> list = Arrays.asList("Banana", "apple", "Cherry");
Collections.sort(list); // 내부적으로 compareTo() 사용
System.out.println(list);
출력:
[Banana, Cherry, apple]
👉 기본 정렬은 대소문자를 구분하기 때문에 "apple"이 뒤로 갑니다.
대소문자 무시 정렬을 원한다면 String.CASE_INSENSITIVE_ORDER를 쓰거나 직접 compareToIgnoreCase()를 적용해야 합니다.
Collections.sort(list, String::compareToIgnoreCase);
System.out.println(list);
출력:
[apple, Banana, Cherry]
4
. 정리
compareTo()→ 문자열 사전순 비교 (대소문자 구분)compareToIgnoreCase()→ 문자열 사전순 비교 (대소문자 무시)0→ 같음, 음수 → 앞섬, 양수 → 뒤섬- 정렬, 검색, Comparator 구현 시 자주 사용됨
👉 문자열을 사전순으로 비교할 땐 compareTo(), 대소문자 무시하고 비교할 땐 compareToIgnoreCase().
반응형
'IT > Java' 카테고리의 다른 글
| [Java StringBuilder] append() – 문자열 이어붙이기 (0) | 2025.09.20 |
|---|---|
| [Java String] toUpperCase(), toLowerCase() – 대소문자 변환하기 (0) | 2025.09.19 |
| [Java String] equals() vs equalsIgnoreCase() – 문자열 비교하기 (0) | 2025.09.18 |
| [Java String] contains() – 문자열 포함 여부 확인하기 (0) | 2025.09.18 |
| [Java String] startsWith(), endsWith() – 문자열 시작과 끝 검사하기 (0) | 2025.09.17 |
Comments