본문 바로가기
JAVA

[Java] 값 비교하기 compareTo 사용하기

by 고체물리학 2021. 11. 17.

1. 숫자형 비교하기

Byte, Short, Integer, Long,  Float, Double를 사용할 수 있다

 

사용법: 기준값.comparTo(비교할 값)

 

기준 값과 비교 값이 같으면 0
기준 값이 비교할 값보다 작으면 -1
기준 값이 비교할 값보다 크면 1
public class test1 {

	public static void main(String[] args) {
		Integer a = 1;
		Integer b = 2;
		Integer c = 3;
		Integer d = 3;
		Float e =  (float) 4.4;
		Float f = (float) 5.5;
		
		System.out.println("a가 b보다 큰가? " + a.compareTo(b)); // 결과: -1
		System.out.println("c가 d보다 큰가? " + c.compareTo(d)); // 결과: 0
		System.out.println("f가 e보다 큰가? " + f.compareTo(e)); // 결과: 1

	}

}

 

결과 값

 

2. 문자열 비교하기

1) 비교 대상이 기준값이 동일한 경우

public class test1 {

	public static void main(String[] args) {
		String a = "abcdef";
		String b = "abcdef";
		System.out.println("결과 값:" + a.compareTo(b)); // 결과: 0
	}
}

 

- 문자열 a와 b가 같기 때문에 결과 값 0

 

2-1) 기준값에 비교 값이 포함되어 있는 경우

public class test1 {

	public static void main(String[] args) {
		String a = "abcdef";
		
		System.out.println("결과 값:" + a.compareTo("abcdef")); // 동일 하기 때문에 값은 0
		System.out.println("결과 값:" + a.compareTo("abcde")); // a ~ e 까지 동일하기 때문에  기준값 길이(6) - 비교값 길이(5) = 1
		System.out.println("결과 값:" + a.compareTo("abcd")); // a ~ d 까지 동일하기 때문에  기준값 길이(6) - 비교값 길이(4) = 2
		System.out.println("결과 값:" + a.compareTo("abc")); // a ~ c 까지 동일하기 때문에  기준값 길이(6) - 비교값 길이(3) = 3
		System.out.println("결과 값:" + a.compareTo("ab")); // a ~ b 까지 동일하기 때문에  기준값 길이(6) - 비교값 길이(2)= 4
		System.out.println("결과 값:" + a.compareTo("a")); // a까지 동일하기 때문에  기준값 길이(6) - 비교값 길이(1) = 5

	}
}

 

2-2) 기준값에 비교 값이 포함되어 있는 경우

public class test1 {

	public static void main(String[] args) {
		String a = "abcdef";
		
		System.out.println("결과 값:" + a.compareTo("abe")); 
		System.out.println("결과 값:" + a.compareTo("acg"));
	}

}

 

- a ~ b 까지는 일치하나 기준값 c 비교 값 e는 다르기 때문에 아스키코드값 c(99) - e(101) = -2

- a까지만 일치 하기때문에 그 뒤에 문자 b(98) - c(99) = -1

 

3) 완전히 다른 문자인 경우

 

public class test1 {

	public static void main(String[] args) {
		String a = "abcdef";
		
		System.out.println("결과 값:" + a.compareTo("z")); // 결과: -25
		System.out.println("결과 값:" + a.compareTo("bc")); // 결과: -1
	}

}

 

- a(97) - z(122) = -25

- a(97) - b(98) = -1

반응형

댓글