[Java] String.compareTo() - 문자열 사전 순 비교
[Java] String.compareTo() - 문자열 사전 순 비교
String.compareTo()로 문자열을 사전 순서로 비교할 수 있습니다.
📝 compareTo()
String.compareTo()는 두 문자열을 사전 순으로 비교할 때 사용하는 메서드로, 반환값은 다음과 같습니다:
-
0: 두 문자열이 동일함
-
양수: 호출한 문자열이 비교 대상보다 뒤에 옴
-
음수: 호출한 문자열이 비교 대상보다 앞에 옴
| 예제 1 |
1
2
3
4
5
6
String s1 = "abc";
String s2 = "def";
System.out.println("\"abc\".compareTo(\"def\"): " + s1.compareTo(s2));
System.out.println("\"def\".compareTo(\"abc\"): " + s2.compareTo(s1));
System.out.println("\"abc\".compareTo(\"abc\"): " + s1.compareTo(s1));
| 예제 1 결과 |
1
2
3
"abc".compareTo("def"): -3
"def".compareTo("abc"): 3
"abc".compareTo("abc"): 0
compareTo()는 두 문자열을 문자 단위로 비교한 후, 다른 문자가 있으면 문자끼리 뺀 값(아스키코드)을 리턴합니다.
| 예제 2 |
1
2
3
4
5
6
7
8
String s1 = "abc";
String s2 = "ebc";
String s3 = "agc";
String s4 = "abe";
System.out.println("\"abc\".compareTo(\"ebc\"): " + s1.compareTo(s2));
System.out.println("\"abc\".compareTo(\"agc\"): " + s1.compareTo(s3));
System.out.println("\"abc\".compareTo(\"abe\"): " + s1.compareTo(s4));
| 예제 2 결과 |
1
2
3
"abc".compareTo("ebc"): -4
"abc".compareTo("agc"): -5
"abc".compareTo("abe"): -2
문자열이 같은데 길이가 다르면, 두 문자열의 길이를 뺀 값을 리턴합니다.
| 예제 3 |
1
2
3
4
5
String s1 = "abc";
String s2 = "abcdefg";
System.out.println("\"abc\".compareTo(\"abcdefg\"): " + s1.compareTo(s2));
System.out.println("\"abcdefg\".compareTo(\"abc\"): " + s2.compareTo(s1));
| 예제 3 결과 |
1
2
"abc".compareTo("abcdefg"): -4
"abcdefg".compareTo("abc"): 4
✨ 핵심 포인트
정리하자면,
s1.compareTo(s2)는 앞에서부터 다른 문자를 찾고 다른 문자가 있으면,s1의 해당 문자 - s2의 해당 문자값을 리턴합니다.
만약 다른 문자가 없으면
s1의 길이 - s2의 길이를 리턴합니다.
🔗 문서 & 참고 링크
This post is licensed under
CC BY 4.0
by the author.