반응형
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
- 자바스크립트
- CSS
- list
- 인텔리제이
- Eclipse
- 이클립스
- input
- HashMap
- 이탈리아
- Java
- IntelliJ
- vscode
- js
- table
- date
- 배열
- map
- ArrayList
- Visual Studio Code
- 정규식
- javascript
- string
- html
- Array
- replace
- CMD
- Button
- 자바
- json
- 문자열
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