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 | 31 |
Tags
- mysql #min() #max() #최소값 #최대값 #코린이 #개발자 #study
- 프로그래머스 #python 개발자 찾기 #알고리즘 #mysql #코린이 #개발자 #study
- 프로그래머스 #아픈 동물 찾기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #동명 동물 수 찾기 #알고리즘 #코린이 #개발자
- 프로그래머스 #나이 정보가 없는 회원 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #경기도에 위치한 식품창고 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #한 해에 잡은 물고기 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 특정 옵션이 포함된 자동차 리스트 구하기 #코린이 #개발자 #study
- 프로그래머스 #가장 큰 물고기 10마리 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #코린이 #개발자 #study
- 백준 #4153 #직각삼각형 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #조건에 맞는 회원수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #어린 동물 찾기 #코린이 #개발자 #study
- 프로그래머스 #mysql #흉부외과 또는 일반외과 의사 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 백준 #다이얼 #5622 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기 중 가장 큰 물고기의 길이 구하기 #알고리즘 #mysql #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #자동차 대여 기록에서 장기/단기 대여 구분하기 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #이름이 있는 동물의 아이디 #코린이 #개발자 #study
- 백준 #일곱 난쟁이 #2309 #자바 #java #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #동명 동물 수 찾기 #mysql #데이터베이스 #db #코린이 #개발자 #알고리즘
- 백준 #네 번째 점 #3009 #자바 #java #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기의 평균 길이 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 백준 #
- 프로그래머스 #과일로 만든 아이스크림 고르기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #역순 정렬하기 #알고리즘 #코린이 #개발자 #study
- 코린이 #개발자 #study
- 프로그래머스 #모음 제거 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #알고리즘 #mysql #
- 프로그래머스 #mysql #12세 이하인 여자 환자 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #알고리즘 #mysql #인기있는 아이스크림 #코린이 #개발자 #study
Archives
- Today
- Total
luke
[자바/Java] - compareTo() (문자열, 숫자 비교) 본문
compareTo()
- compareTo() 함수는 두 개의 값을 비교해 int 값으로 반환해 주는 함수이다.
- compareTo() 함수에는 "문자열 비교", "숫자 비교" 두 방식이 있다.
숫자 비교
public class Main {
public static void main(String[] args) {
Integer a = 5;
Integer b = 3;
System.out.println(a.compareTo(b)); // 결과 : 1 기준값 a가 비교값 보다 클 경우.
System.out.println(a.compareTo(5)); // 결과 : 0 기준값 a와 비교값 이 같을 경우.
System.out.println(a.compareTo(7)); // 결과 : -1 기준값 a가 비교값 보다 작을 경우.
}
}
1. 실행 결과 : 기준값 a가 비교값 보다 클 경우. 1
2. 실행 결과 : 기준값 a와 비교값 이 같을 경우. 0
3. 실행 결과 : 기준값 a가 비교값 보다 작을 경우. -1
코드를 보면 변수 타입을 Integer로 선언했는데, 만약 int타입을 원한다면 다음과 같은 코드로 사용하면 된다.
int a = 5;
int b = 3;
System.out.println(Integer.compare(c, d)); // 결과: 1
문자열 비교
public class Main {
public static void main(String[] args) {
String str = "abc";
System.out.println(str.compareTo("abc")); // 0
System.out.println(str.compareTo("a")); // 2
System.out.println(str.compareTo("ab")); // 1
System.out.println(str.compareTo("ac")); // -1
System.out.println(str.compareTo("")); // 3
System.out.println(str.compareTo("d")); // -3 아스키 코드 a=96 d=99 a-d = -3리턴
}
}
비교대상에 문자열이 포함되어있을 경우
str.compareTo("a")의 결과가 2로 나오는 이유는?
str 값에 있는 "abc"에 a가 포함되어 있어 기준값에 비교대상이 포함되어 있을 경우 서로의 문자열 길이의 차이값을 리턴해주기 때문이다.
- "abc"(3) - "abc" = 0
- "abc"(3) - "a" = 2
- "abc"(3) - " " = 3
이런식의 결과 값이 나오는 것이다.
마지막 코드인 str.compareTo("d")의 결과 값은 -3이다 왜 -3 일까?
compareTo는 같은 위치의 문자만 비교하고 첫번째 문자부터 순서대로 비교해 다를 경우 아스키값을 기준으로 처리한다.
우선 str 변수에 "abc" 가 있는 a의 아스키코드 값은 96이다 다음 비교할 d의 값은 99이다.
a(96) - b(99) = -3의 결과 값이 나오게 되는 것이다.
'Study > Java' 카테고리의 다른 글
[자바/Java] - Stack(스택) 정리 및 활용 (0) | 2024.04.29 |
---|---|
[자바/Java] - indexOf(), substring() (문자열 자르기) (0) | 2024.04.21 |
[자바/Java] - instanceof 연산자 (0) | 2024.01.14 |
[자바/Java] - 다형성(1)(다운캐스팅, 업캐스팅) (0) | 2024.01.14 |
[자바/Java] - 오버라이딩, 오버로딩 (2) | 2024.01.13 |