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

자바(Java)의 indexOf( 문자 위치 ) 문자열에 대해 자세히 공부[3]

차세대 IT 리더 비공자 2024. 1. 16. 06:30

 
 
안녕하세요, 차세대 IT리더가 되고픈 비공자입니다.
 
오늘은 날씨가 엄청 춥네요 ^^.. ( 2024.01.15 )
저번 포스팅에서 배웠던 문자열 메서드~!
모두 Java의 lang 패키지에서 기본으로 있는
StringWrapper 클래스 내부의 메서드 CharAt( )를
사용해서 코드를 작성하고 사용해 보았는데요!
 
 
오늘은 같은 문자열 메서드인 indexOf( ) 메서드를
배우려고 해요, indexOf( ) 메서드는
charAt( ) 메서드처럼 문자열의 위치를 알려주지만
조금 더 문자열을 찾는 최적한 기능들이 있는
아주 유용한 메서드입니다.
실제로도 많이들 사용한다고 하더라고요~!!
그러니 꼭 배워야겠지요~ @_@
그렇다면 오늘도 같이 열심히 공부해요!
 
 
[ 오늘의 목록 ]
1. indexOf( ) 메서드란 무엇인가요?
2. indexOf( ) 메서드로
[ 문자열의 특정 문자 위치 찾기 ]
3. indexOf( ) 메서드로 
[ 문자열의 특정 문자열 시작위치 찾기 ]
4. indexOf( ) 메서드로
[ 문자열 내의 문자 존재여부 확인 ]
5. indexOf( ) 메서드로
[ 문자열 내의 문자열 존재여부 확인 ]
6. indexOf( ) 메서드로
[ 문자열 내의 특정 위치부터 문자 찾기 ]
7. indexOf( ) 메서드로
[ 문자열 내의 특정 위치부터 문자열 시작위치 찾기 ]
 
와... 오늘은 정말 배워야 할게 많네요..
배우고 이미지 만들고 코드 만들고 오늘은 엄청 많은
시간 동안 포스팅을 해야 할 것 같네요 ^^..
그래도 이 정도 노력은 해야 저도 확실히 기억하고
여러분들도 확실히 기억이 남으시겠지요~
그럼 시작하겠습니다!!
 
 
[ 1. indexOf( ) 메서드란 무엇인가요? ]
여러분은 저번 포스팅에서 charAt( )라는 메서드로
문자열 데이터에서 특정 문자의 위치를 찾고
문자열 데이터에서 처음과 끝 문자의 위치를 찾고
이미 문자열 메서드에는 약간의 친숙함이 있을 텐데
 
문자열 indexOf( ) 메서드는 말 그대로
=> ( ) 안에 있는 데이터( 숫자 or 문자 )를 문자열에서
      찾아줘입니다.
 
제일 먼저 코드로 하나만 먼저 배워볼까요?

첫번째 indexOf( )메서드

indexOf( int ch )
-> 문자열의 특정 문자의 위치를 찾는다.

문자열이 저장된 String 타입의 str 변수가
생성 및 정의를 한 모습을 볼 수 있는데
빨간색 박스가 보이시지요?
저기 보시면 index( int ch )라고 보기를 보여주는데
저 메서드를 사용하면 문자열의 특정 문자의 위치를
알려주는 메서드입니다.
실행결과 :

문자를 찾았어요!

위의 코드를 보시면 indexOf( int ch ) 메서드를
사용해서 특정 문자 4개의 위치 [ 오, 공, x, 다 ]
문자열에서 찾는 걸 볼 수 있습니다~!
이제 indexOf( ) 메서드가 무엇인지는 알았으니
이제 indexOf( ) 메서드의 여러 기능들을
배워 보도록 하겠습니다.
 
 
[  2. 문자열의 특정 문자 위치 찾기 ]
문자열에서 특정 문자를 입력해 위치 찾기 첫 번째는 처음 1번에 있는 문자로 위치를 찾을 수 있고 그래도 한번 더 보여드리면
문자열에서 특정 문자를 입력해 위치 찾기

사용한 indexOf( ) 메서드
문자를 찾았어요!

위와 같이 문자열 데이터에서 indexOf( 특정문자 입력 )를 사용해서문자의 위치를 찾는 것을 확인할 수 있습니다.
 
그림으로 보는 문자열에서 문자를 찾는 방법

문자열에서 특정 문자를 찾는 그림

위의 그림을 보시면 indexOf( ) 메서드를 이용해서
오, 공을 문자의 위치를 찾아달라고 하면
응답으로 [ 0 , 4 ]가 돌아오는 걸 보듯이
indexOf( int ch )는 문자의 위치를 찾아줘요~!
 
 
[ 3. 문자열의 특정 문자열 위치 찾기 ] 

문자열의 위치를 찾기 위한 indexOf( ) 메서드

indexOf( String str )
-> 문자열에서 특정 문자열의 시작위치를 찾는다.

문자열 데이터에서 특정 문자열 찾기
위 코드에 보시면 빨간색 표시가 보이시죠?
문자열의 시작위치를 찾기 위한 메서드입니다.

실행결과 : 

찾은 문자열의 시작위치 출력

위 코드를 보시면 [ 오늘의, 공부는, 입니다. ]가
보이실 텐데, 문자열의마다의 첫 글자에 제가
빨간색 박스표시를 해놓은 것을 보실 수 있어요
 
저 빨간색 표시가 문자열의 시작 부분이잖아요?
아래 Console 출력결과를 보시면
첫 번째 문자열 시작위치 찾기 : 0
두 번째 문자열 시작위치 찾기 : 4
세 번째 문자열 시작위치 찾기 : 16
결과로 나오는데 아마 다들 눈치채셨겠지만
맞습니다. 문자열의 시작위치를 출력하고
있습니다.
 
문자열을 나누는 기준은 공백으로 문자열을
나누는 모습을 보실 수 있는데 그림으로 보시면

문자열에서 특정 문자열의 위치를 찾는 설명

위의 그림 보시면 indexOf( )를 이용하여
특정 문자열을 요청하면 문자열 데이터에서
특정 문자열의 시작위치를 알려주고 있는걸
보실 수 있습니다.
indexOf( String str )는 문자열의 위치를
찾아줘요!
 
 
[ 4. 문자열 내의 문자 존재여부 확인 ]

문자를 찾는 indexOf( )메서드를 사용 해주세요!
존재 여부를 확인 결과

indexOf( int ch )
-> 문자열에서 특정 문자의 존재여부를 파악한다.
     ( 있으면 문자의 위치, 없으면 -1 반환한다. )

 위의 코드의 결과를 보시면 
-1과 5를 보실수 있습니다.

문자열에서 '신'이라는 문자는 문자열에 포함이 되지 않아
위치가 없어서 -1을 출력하는 것을 볼 수 있습니다.
 
문자열에서 '부'라는 문자는 문자열에 포함이 되어서
문자의 위치를 출력해 줍니다.
그림에서 한번 더 이해를 해보겠습니다.

문자열 데이터에서 문자가 있는지 확인

 
 
[ 5. 문자열 내의 문자열 존재여부 확인 ]

문자열 찾는 indexOf 메서드를 사용해주세요
문자열 데이터에 특정 문자열 존재여부 확인

indexOf( String str )
-> 문자열에서 특정 문자열의 존재여부를 파악한다.
    ( 문자열이 있으면 시작위치, 없으면 -1을 반환한다 )

 위 코드의 결과를 보시면
리더라는 문자열은 str에 저장된 문자열 데이터에
존재하지 않아 -1을 반환하는 것을 보여줍니다.
indexOf라는 문자열은 str에 저장된 문자열 데이터에
존재하기 때문에 문자열의 시작 i의 시작위치를
반환하는 것을 볼 수 있습니다.


그림으로 한번 더 이해를 해보시겠습니다.

위와 같은 그림에서 보듯이 리더라는 문자열은
존재하지 않아 -1을 반환하는 것을 보여주고
indexOf라는 문자열은 문자열 데이터에
존재하기 때문에 시작위치를 알려줍니다.
 
 
[6. 문자열 내의 특정 위치부터 문자 찾기 ]

formIndex = index로 설정된 위치부터 찾기 시작
특정 위치에서부터 특정 문자를 찾은 결과 화면

indexOf( int ch, int fromIndex )
-> 특정 문자열을 몇 번째 인덱스(위치)부터 찾는다.

 
위 코드의 빨간색 박스로 표시된 부분을 보시면
특정 문자열에서  찾을 위치를 지정 후 그 이후부터 찾아요~
그렇기 때문에 결과를 보시면 특정 문자 '공'은 
[ 0 ]처음부터 찾기 시작을 하기 때문에 [ 4 ] 번째 위치에
있는 것을 확인할 수 있지만,
두 번째 특정 문자 '부'는[ 6 ] 번째 인덱스(위치)부터찾기
시작하기 때문에 찾을 수가 없어서 
-1을 반환하는 모습을
보실 수 있습니다.

 
그림으로 한번 더 이해를 해보겠습니다!

문자 '부'의 위치는 5번째 위치에 있어서 6번째부터 찾으면 찾을수가 없어요..

위의 그림을 보시면 문자 '공'은 처음[ 0 ]부터 찾아서 
[ 4 ] 위치에 있다는 걸 찾을 수 있지만,
문자 '부'의 경우 [5] 번째 위치에 있고
찾는 범위의 시작은 [6] 번째부터 찾기 시작을 해서
찾을 수 없기 때문에 -1을 반환하는 모습을
볼 수 있습니다.
 
 
[ 7. 문자열 내의 특정 위치부터 문자열 시작위치 찾기 ] 

indexOf의 특정 위치부터 문자열 찾기
문자열에서 특정 문자열 시작위치 찾기

indexOf( String str, int fromIndex )
-> 문자열에서 특정 위치부터 문자열의 시작위치 찾기
 
위의 코드를 보시면 첫 번째로 찾은 문자열의 시작위치는
0으로 출력이 되는데 그 이유는
"오늘은"이라는 문자열을 [ 0 ]의 위치부터 찾기
시작해서 문자열의 시작 "오" [ 0 ] 번째 인덱스부터
시작하기 때문에 [ 0 ]위치를 출력하는 걸 볼 수 있습니다.
 
두 번째로 찾은 문자열의 시작위치는 같은 "오늘은"
찾으라고 하지만, [ 1 ]위치 즉, 첫 공백 이후부터 찾기
시작하라는 말이기 때문에
1번 빨간색 표시 "오늘은"이 아닌
2번 빨간색 표시 "오늘은"을 찾아
시작위치가 [ 17 ]위치로 출력하는 걸 볼 수 있습니다.
 
마지막 그림으로 이해해보도록 하겠습니다.

그림으로 이해하기

첫 번째 "오늘은" 문자열은 시작하자마자 나와서 0을 출력
하지만, 두 번째 "오늘은" 문자열은 첫 공백 이후라서
공백 다음의 "오늘은" 문자열을 찾아서 17번째 시작위치가
있다고 알려주네요~
 
 
오늘은 포스팅을 너무 길게 해서 많이 힘들지만
그래도 고생한 만큼 배운 것이 많아서 정말 좋네요^^
여러분들도 오늘 하루 정말 고생 많으셨습니다.
 

그럼..

 
오늘도 포스팅을 읽어주셔서 감사합니다.