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 |
Tags
- 프로그래머스 #수열과 구간 쿼리1 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #부분 문자열 이어 붙여 문자열 만들기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 백준 #
- 프로그래머스 #조건에 맞게 수열 변환하기 1 #알고리즘 #자바 #Java #코린이 #개발자 #study #취준
- 파이썬 #input() #sys.stdin.readline() #공부 #study
- 프로그래머스 #오랜 기간 보호한 동물(1) #알고리즘 #MySQL #DB #쿼리문 #개발자 #study #성장 #코린이
- 프로그래머스 #문자열 뒤집기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #조건에 맞는 개발자 찾기 #MySQL #쿼리문 #알고리즘 #코린이 #개발자 #study #취준
- 프로그래머스 #카테고리 별 도서 판매량 집계하기 #알고리즘 #쿼리문 #MySQL #코린이 #개발자 #study #취준
- 프로그래머스 #배열의 원소만큼 추가하기 #알고리즘 #코린이 #개발자 #study #취준
- 프로그래머스 #등차수열의 특정한 항만 더하기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부
- 프로그래머스 #조건별로 분류하여 주문상태 출력하기 #MySQL #쿼리문 #알고리즘 #코린이 #개발자 #study #취준
- 프로그래머스 #있었는데요 없었습니다 #DB #MySQL #알고리즘 #쿼리문 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #길이에 따른 연산 #알고리즘 #자바 #Java #코린이 #개발자 #study #취준
- 프로그래머스 #배열 회전시키기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #x 사이의 개수 #알고리즘 #자바 #Java #코린이 #개발자 #study
- 프로그래머스 #할 일 목록 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #배열에서 문자열 대소문자 변환하기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #1로 만들기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #합성수 찾기 #알고리즘 #Java #자바 #stiudy #코린이 #개발자 #공부 #성장
- 프로그래머스 #푸드 파이트 대회 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #알고리즘 #ad 제거하기 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #날짜 비교하기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #배열만들기 5 #알고리즘 #study #Java #코린이 #개발자 #성장 #공부
- 프로그래머스 #중복된 문자 제거 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #세로 읽기 #알고리즘 #개발자 #코린이 #study #성장 #Java #자바
- 프로그래머스 #소수 만들기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #간단한 식 계산하기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 코린이 #개발자 #study
- 프로그래머스 #조건에 맞는 사용자와 총 거래금액 조회하기 #알고리즘 #Mysql #DB #쿼리문 #코린이 #개발자 #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 |