안녕하세요, 차세대 IT리더가 되고 싶은 비공자입니다.
오늘은 문자열의 길이를 비교할 수 있는 메서드인
compareTo() 메서드에 대해서 공부를 해보려고 해요!
벌써 어느덧 자바 문자열 7번째 시간이 되었네요 ^^..
문자열에 대한 공부가 어느덧 중후반에 다다랐네요~
아직 자바에 대해서 한참 공부를 해야 하지만,
하나씩 배우다 보면..........
어느덧 제 꿈에 도달하지 않을까요~ @_@
그럼 오늘도 같이 공부를 열심히 했으면 좋겠습니다!
[ 오늘의 목차 ]
1. 시작 문자가 같은 문자열을 비교해 보기
2. 시작 문자가 다른 경우 문자열을 비교해 보기
( 아스키코드 범위 )
[ 들어가기 전 ]
compareTo() 메서드는 문자열에서 어떤 비교를
하는가 하면 대표적으로는 문자열의 길이를
비교해 주고 길이의 차이만큼 반환을 해줍니다.
하지만,
다른 비교로는 값의 범위의 비교도 해줍니다.
( 이건 포스팅을 보시면 알 수 있습니다. 하하.. )
그리고 compareTo( )는 문자열만이 아닌
숫자의 값도 비교해 주고 날짜도 비교해 주지만
포스팅의 주제가 문자열이라서 문자열만
먼저 배우고 날짜비교와 숫자비교는 이후에
다른 주제로 포스팅할 때 배워보도록 하겠습니다!
[ 1. 시작 문자가 같은 문자열을 비교해 보기 ]
위의 코드를 보시면 시작 문자가 같은 문자열을
compareTo( ) 메서드를 사용해 길이 비교를 합니다.
1번 같은 경우는 문자열이 같다는 걸 확인할 수 있는데
결과를 보시면 str_1( 16 )과 str_2 ( 16 )의 길이가 같죠
길이가 같은 건 차이가 없기 때문에 0을 반환을 합니다.
2번 같은 경우는 문자열의 길이가 서로 다르고
str_1( 16 )이 str_3( 42 ) 보다 작기 때문에 차이가 있어요!
그 차이는 str_1 - str_3의 차이라서 -26을 반환합니다.
3번 같은 경우는 문자열의 길이가 서로 다르고
str_3( 42 )이 str_2( 16 ) 보다 크기 때문에 차이가 있어요!
그 차이는 str_3 - str_2의 차이라서 +26을 반환합니다.
[ 2. 시작 문자가 다른 경우 문자열을 비교해 보기 ]
위의 코드를 보시면 서로 다른 문자열 3개를 생성했습니다.
1번을 보시면 저희 문자열 첫 포스팅이 기억이 나실까요?
charAt( 문자위치 )를 입력받으면 문자위치에 해당하는
문자를 반환해주는 메서드입니다. ( 기억해주세요..ㅠㅠ )
compareTo( )의 경우, 첫 시작문자가 다를 경우 길이를
비교하는 것이 아닌 문자의 아스키코드값의 범위를 비교
합니다. 아직 아스키코드가 무엇인지 모르실 텐데...
( 아스키코드는 나중에 배워보도록 할게요~ )
그래도 공부는 해야 하니 간단하게 말하면
아스키코드는 문자와 그 문자에 해당하는 값이 있습니다!
아래의 그림을 보시면 이해가 가실거예요~
아스키코드 문자 | 아스키코드 값 |
a | 97 |
b | 98 |
c | 99 |
위와 같은 도표를 볼 수 있습니다.
2번을 보시면 아스키코드의 값을 가져오는 코드예요~
charAt(0)을 사용해서 문자열의 첫 문자를 가져오고
그걸 Integer(Wapper 클래스) valueOf() 메서드를
사용해서 문자열을 정수형으로 변수의 타입을 변형해 주고
문자 => 정수로 변형해서 아스키코드의 값을
가져오는 원리입니다.
그리고
3번 compareTo( ) 메서드를 이용해서
비교하는 아스키코드의 값의 범위의 차이를 반환해 줍니다.
a와 b 경우, 97 - 98 = -1 반환
b와 c 경우, 98 - 99 = -1 반환
c와 a 경우, 99 - 97 = +2 반환
이렇게 정의할 수 있습니다
오늘은 갑작스럽게 문자열에서 생소한 문법들을
보셨을 수도 있어서 당황하셨을 수도 있지만,
여러분들도 나중에는 한 번에 보고 이해하실 수 있는
그런 날이 올 거고, 전부 다 나중에 같이 공부를 할 거라서
오늘은 포스팅 주제인 compareTo()의 사용법에만
기억해 주셨으면 좋겠습니다.
[ compareTo 메서드의 마지막 정리 ]
문자열의 시작문자가 같을 경우 길이를 비교한다.
문자열의 시작문자가 다른 경우 범위를 비교한다.
그럼..
오늘도 저의 포스팅을 읽어주셔서 정말 감사합니다.
'Java 개발자가 되고 싶은 비공자' 카테고리의 다른 글
자바(Java)의 replace( 문자열 변경 ), replaceAll( 정규식 문자열 변경 ) 문자열 변경하기 문자열에 대해 자세히 공부[9] (0) | 2024.01.20 |
---|---|
자바(Java)의 split( 문자열 자르기 ), concat( 문자열 합치기) 문자열에 대해 자세히 공부[8] (29) | 2024.01.20 |
자바(Java)의 isBlank( 문자열 존재여부 확인 ) 문자열에 대해 자세히 공부[6] (28) | 2024.01.19 |
자바(Java)의 isEmpty( 문자열 존재여부 확인 ) 문자열에 대해 자세히 공부[5] (29) | 2024.01.17 |
자바(Java)의 equals( 문자열 비교 ) 문자열에 대해 자세히 공부[4] (28) | 2024.01.17 |