Java 개발자가 되고 싶은 비공자

자바(Java)의 compareTo( 문자열 길이 비교 ) 문자열에 대해 자세히 공부[7]

차세대 IT 리더 비공자 2024. 1. 19. 07:30

 
 
안녕하세요, 차세대 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( )의 경우, 첫 시작문자가 다를 경우 길이를
비교하는 것이 아닌 문자의 아스키코드값의 범위를 비교
합니다. 아직 아스키코드가 무엇인지 모르실 텐데...
( 아스키코드는 나중에 배워보도록 할게요~ )
그래도 공부는 해야 하니 간단하게 말하면
아스키코드는 문자와 그 문자에 해당하는 값이 있습니다!
아래의 그림을 보시면 이해가 가실거예요~

아스키코드
문자
아스키코드
a97
b98
c99

위와 같은 도표를 볼 수 있습니다. 
 
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 메서드의 마지막 정리 ]
문자열의 시작문자가 같을 경우 길이를 비교한다.
문자열의 시작문자가 다른 경우 범위를 비교한다.
 
 
그럼..
 
 
오늘도 저의 포스팅을 읽어주셔서 정말 감사합니다.