[Java] String.compareTo

홍선·2021년 5월 25일
0

Java

목록 보기
1/1
post-thumbnail
public int compareTo(String anotherString)

String 개체를 사전 순서로 비교할 때 사용하는 메서드입니다.
최근에 이 메서드를 잘못 사용하여 고생한 경험이 있어서 정리합니다.

String machine = "machine";
String master = "master";

int value = machine.compareTo(master);

"machine"과 "master"는 "ma"까지는 동일하고 다음 글자가 'c'와 's'로 달라집니다.
index 0, 1은 동일하고, 2가 다른 상황이죠.
이 때 다음과 같이 다른 글자의 차이를 value로 반환합니다.

value = machine.charAt(2) - master.charAt(2);

즉, value = 'c' - 's' = 99 - 115 = -16 이 반환됩니다.


"app"과 "apple"처럼 길이가 짧은 쪽의 index가 끝날 때 까지 모든 글자가 같으면 문자열의 길이를 비교합니다.

value = app.length() - apple.length();

value = 3 - 5 = -2를 반환하여 길이가 짧은 쪽이 사전적으로 앞쪽 순서를 나타냅니다.


모든 글자가 같고, 길이도 같으면 0을 반환합니다.


정리하면,
string.compareTo(anotherString)은
1. 음수를 반환하면 string이 앞쪽 순서,
2. 양수를 반환하면 string이 뒤쪽 순서,
3. 0을 반환하면 두 string 개체는 사전적으로 동일합니다. (String.equals()와 같음)

profile
데이터를 보고 이상한 제품을 찾습니다

0개의 댓글