Language/Java

[Java] compareTo 메소드

arajo 2022. 8. 9. 19:29
728x90

int compareTo 메소드

  • 자신과 인자로 전달 받는 원소와 비교하여 음수, 0, 정수를 리턴한다.
  • 즉, 2개의 값을 비교하여 int형의 값으로 리턴해주는 함수다.

 

  • 음수 : 자신이 아닌 다른 원소가 크다.
  • 0 : 서로 같다.
  • 양수 : 다른 원소보다 자신이 더 크다.

 

  • 오름차순 : 자신 - 타원소
  • 내림차순 : 타원소 - 자신
import java.util.*;

public class Main {
	public static void main(String[] args) {
    	int a = 3;
        int b = 4;
        
        int c = 3;
        int d = 3;
        
        int e = 4;
        int f = 3;
        System.out.println(Integer.compare(a, b));	// -1 출력
        System.out.println(Integer.compare(c, d));	//  0 출력
        System.out.println(Integer.compare(e, f));	//  1 출력
    }
}

문자열 compareTo 메소드

  • 문자열 compareTo 메소드는 int 형과 다르게 리턴값이 다르다.

문자열이 같은 경우 0 리턴

- String a와 String d를 compareTo를 하면 0 출력

 

비교대상이 문자열에 포함되어 있는 경우 a.length - b.length 리턴

- String a와 String b를 compareTo를 하면 a.length(4) - b.length(2) 리턴

 

다른 문자열인 경우 해당 문자의 아스키코드의 차이를 리턴한다.

import java.util.*;

public class Main {
	public static void main(String[] args) {
		String a = "abcd";
		String b = "ab";
		String c = "zyxwv";
		String d = "abcd";
		System,out.println(a.compareTo(b)); //   2 출력
		System,out.println(a.compareTo(c)); // -25 출력
		System,out.println(b.compareTo(c)); // -25 출력
		System,out.println(a.compareTo(d)); //   0 출력
    }
}

문자열 대소문자 무시하는 메소드

  • compareToIgnoreCase()
import java.util.*;

public class Main {
	public static void main(String[] args) {
		String a = "abcd";
		String b = "AB";
		String c = "ABCD";
		System,out.println(a.compareTo(b)); //   32 출력
		System,out.println(a.compareToIgnoreCase(b)); // 2 출력
		System,out.println(a.compareToIgnoreCase(c)); // 0 출력

    }
}

Integer.compare 메소드

import java.util.*;

public class Main {
	public static void main(String[] args) {
		int a = 3;
		int b = 4;
        
		System.out.println(Integer.compare(a, b); // -1 출력
    }
}