안녕하세요, 차세대 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( int ch )
-> 문자열의 특정 문자의 위치를 찾는다.
문자열이 저장된 String 타입의 str 변수가
생성 및 정의를 한 모습을 볼 수 있는데
빨간색 박스가 보이시지요?
저기 보시면 index( int ch )라고 보기를 보여주는데
저 메서드를 사용하면 문자열의 특정 문자의 위치를
알려주는 메서드입니다.
실행결과 :
위의 코드를 보시면 indexOf( int ch ) 메서드를
사용해서 특정 문자 4개의 위치 [ 오, 공, x, 다 ]를
문자열에서 찾는 걸 볼 수 있습니다~!
이제 indexOf( ) 메서드가 무엇인지는 알았으니
이제 indexOf( ) 메서드의 여러 기능들을
배워 보도록 하겠습니다.
[ 2. 문자열의 특정 문자 위치 찾기 ]
문자열에서 특정 문자를 입력해 위치 찾기 첫 번째는 처음 1번에 있는 문자로 위치를 찾을 수 있고 그래도 한번 더 보여드리면
문자열에서 특정 문자를 입력해 위치 찾기
위와 같이 문자열 데이터에서 indexOf( 특정문자 입력 )를 사용해서문자의 위치를 찾는 것을 확인할 수 있습니다.
그림으로 보는 문자열에서 문자를 찾는 방법
위의 그림을 보시면 indexOf( ) 메서드를 이용해서
오, 공을 문자의 위치를 찾아달라고 하면
응답으로 [ 0 , 4 ]가 돌아오는 걸 보듯이
indexOf( int ch )는 문자의 위치를 찾아줘요~!
[ 3. 문자열의 특정 문자열 위치 찾기 ]
indexOf( String str )
-> 문자열에서 특정 문자열의 시작위치를 찾는다.
문자열 데이터에서 특정 문자열 찾기
위 코드에 보시면 빨간색 표시가 보이시죠?
문자열의 시작위치를 찾기 위한 메서드입니다.
실행결과 :
위 코드를 보시면 [ 오늘의, 공부는, 입니다. ]가
보이실 텐데, 문자열의마다의 첫 글자에 제가
빨간색 박스표시를 해놓은 것을 보실 수 있어요
저 빨간색 표시가 문자열의 시작 부분이잖아요?
아래 Console 출력결과를 보시면
첫 번째 문자열 시작위치 찾기 : 0
두 번째 문자열 시작위치 찾기 : 4
세 번째 문자열 시작위치 찾기 : 16
결과로 나오는데 아마 다들 눈치채셨겠지만
맞습니다. 문자열의 시작위치를 출력하고
있습니다.
문자열을 나누는 기준은 공백으로 문자열을
나누는 모습을 보실 수 있는데 그림으로 보시면
위의 그림 보시면 indexOf( )를 이용하여
특정 문자열을 요청하면 문자열 데이터에서
특정 문자열의 시작위치를 알려주고 있는걸
보실 수 있습니다.
indexOf( String str )는 문자열의 위치를
찾아줘요!
[ 4. 문자열 내의 문자 존재여부 확인 ]
indexOf( int ch )
-> 문자열에서 특정 문자의 존재여부를 파악한다.
( 있으면 문자의 위치, 없으면 -1 반환한다. )
위의 코드의 결과를 보시면
-1과 5를 보실수 있습니다.
문자열에서 '신'이라는 문자는 문자열에 포함이 되지 않아
위치가 없어서 -1을 출력하는 것을 볼 수 있습니다.
문자열에서 '부'라는 문자는 문자열에 포함이 되어서
문자의 위치를 출력해 줍니다.
그림에서 한번 더 이해를 해보겠습니다.
[ 5. 문자열 내의 문자열 존재여부 확인 ]
indexOf( String str )
-> 문자열에서 특정 문자열의 존재여부를 파악한다.
( 문자열이 있으면 시작위치, 없으면 -1을 반환한다 )
위 코드의 결과를 보시면
리더라는 문자열은 str에 저장된 문자열 데이터에
존재하지 않아 -1을 반환하는 것을 보여줍니다.
indexOf라는 문자열은 str에 저장된 문자열 데이터에
존재하기 때문에 문자열의 시작 i의 시작위치를
반환하는 것을 볼 수 있습니다.
그림으로 한번 더 이해를 해보시겠습니다.
위와 같은 그림에서 보듯이 리더라는 문자열은
존재하지 않아 -1을 반환하는 것을 보여주고
indexOf라는 문자열은 문자열 데이터에
존재하기 때문에 시작위치를 알려줍니다.
[6. 문자열 내의 특정 위치부터 문자 찾기 ]
indexOf( int ch, int fromIndex )
-> 특정 문자열을 몇 번째 인덱스(위치)부터 찾는다.
위 코드의 빨간색 박스로 표시된 부분을 보시면
특정 문자열에서 찾을 위치를 지정 후 그 이후부터 찾아요~
그렇기 때문에 결과를 보시면 특정 문자 '공'은
[ 0 ]처음부터 찾기 시작을 하기 때문에 [ 4 ] 번째 위치에
있는 것을 확인할 수 있지만,
두 번째 특정 문자 '부'는[ 6 ] 번째 인덱스(위치)부터찾기
시작하기 때문에 찾을 수가 없어서 -1을 반환하는 모습을
보실 수 있습니다.
그림으로 한번 더 이해를 해보겠습니다!
위의 그림을 보시면 문자 '공'은 처음[ 0 ]부터 찾아서
[ 4 ] 위치에 있다는 걸 찾을 수 있지만,
문자 '부'의 경우 [5] 번째 위치에 있고
찾는 범위의 시작은 [6] 번째부터 찾기 시작을 해서
찾을 수 없기 때문에 -1을 반환하는 모습을
볼 수 있습니다.
[ 7. 문자열 내의 특정 위치부터 문자열 시작위치 찾기 ]
indexOf( String str, int fromIndex )
-> 문자열에서 특정 위치부터 문자열의 시작위치 찾기
위의 코드를 보시면 첫 번째로 찾은 문자열의 시작위치는
0으로 출력이 되는데 그 이유는
"오늘은"이라는 문자열을 [ 0 ]의 위치부터 찾기를
시작해서 문자열의 시작 "오" [ 0 ] 번째 인덱스부터
시작하기 때문에 [ 0 ]위치를 출력하는 걸 볼 수 있습니다.
두 번째로 찾은 문자열의 시작위치는 같은 "오늘은"을
찾으라고 하지만, [ 1 ]위치 즉, 첫 공백 이후부터 찾기
시작하라는 말이기 때문에
1번 빨간색 표시 "오늘은"이 아닌
2번 빨간색 표시 "오늘은"을 찾아서
시작위치가 [ 17 ]위치로 출력하는 걸 볼 수 있습니다.
마지막 그림으로 이해해보도록 하겠습니다.
첫 번째 "오늘은" 문자열은 시작하자마자 나와서 0을 출력
하지만, 두 번째 "오늘은" 문자열은 첫 공백 이후라서
공백 다음의 "오늘은" 문자열을 찾아서 17번째 시작위치가
있다고 알려주네요~
오늘은 포스팅을 너무 길게 해서 많이 힘들지만
그래도 고생한 만큼 배운 것이 많아서 정말 좋네요^^
여러분들도 오늘 하루 정말 고생 많으셨습니다.
그럼..
오늘도 포스팅을 읽어주셔서 감사합니다.
'Java 개발자가 되고 싶은 비공자' 카테고리의 다른 글
자바(Java)의 isEmpty( 문자열 존재여부 확인 ) 문자열에 대해 자세히 공부[5] (29) | 2024.01.17 |
---|---|
자바(Java)의 equals( 문자열 비교 ) 문자열에 대해 자세히 공부[4] (28) | 2024.01.17 |
자바(Java)의 charAt( 문자 위치 ) 문자열에 대해 자세히 공부 [2] (30) | 2024.01.15 |
자바(Java)의 Wrapper클래스 문자열에 대해 자세히 공부 [1] (29) | 2024.01.14 |
자바(Java) 이클립스(Eclipse)에서 변수 생성 및 정의 [2] (28) | 2024.01.14 |