1. indexOf() : 특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스를 반환하며 만약 찾지 못했을 경우 -1을 반환합니다.
- indexOf(String str)
- indexOf(int ch)
- indexOf(int ch, int fromIndex)
- indexOf(String str, int fromIndex)
사용법은 위 사진과 같은데. indexOf(찾을 특정 문자, 시작할 위치)로 사용하면 된다. 시작할 위치의 경우 생략이 가능하며 생략할 경우 0번째 즉 문자열의 처음부터 찾기 시작한다.
출력문을 보면 찾을 특정 문자의 index 즉 위치를 반환해 주는 것을 알 수 있다. 1번째 예시와 3번째 예시의 차이점을 살펴보자. 1번째 예시와 3번째 예시 모두 특정 문자("o")를 찾지만 반환값이 다른 것을 확인할 수 있다. 이유는 1번째 예시는 시작할 위치를 지정해주지 않아 문자열의 처음부터 찾기 시작해 특정 문자("o")를 찾았을 때를 반환한 것이고 3번째 예시는 시작할 위치를 5로 지정해 줬기 때문에 5부터 시작해 특정 문자("o")를 찾았을 때 반환한 것이다.
그리고 공백 역시 하나하나 전부 위치를 잡고 있기때문에 indexOfTestStr2 에서 특정문자("o")를 찾을 경우 앞에 빈칸을 전부 포함하여 5번째 위치에 있다는 결과를 반환하는 것을 추가로 확인할 수 있다.
"-1"을 반환하는 이유는 특정문자("k")를 찾지 못했기 때문에 그렇다.
2. lastIndexOf() : 특정 문자나 문자열이 뒤에서부터 처음 발견되는 인덱스를 반환하며 만약 찾지 못했을 경우 -1을 반환합니다.
- lastIndexOf(String str)
- lastIndexOf(int ch)
- lastIndexOf(int ch, int fromIndex)
- lastIndexOf(String str, int fromIndex)
사용법은 위 사진과 같은데. indexOf(찾을 특정 문자, 시작할 위치)로 사용하면 된다. 시작할 위치의 경우 생략이 가능하며 생략할 경우 문자열의 뒤에서부터 찾기 시작한다.
lastIndexOf()가 반환한 값을 확인할 때 주의해야할 점이 있다. 문자열을 뒤에서부터 찾기 시작하지만 오른쪽에서 몇번째 위치하는지를 반환하는 것이 왼쪽에서 몇번째 위치하는지를 인덱스로 반환한다.
반환값을 확인해보면 어떤 말인지 더 쉽게 이해할 수 있다. 분명 뒤에서 특정문자("o")의 위치는 6번째인데 lastIndexOf()가 반환하는 값은 "9"를 반환한다. 이런 차이점을 제외하고는 indexOf()와 같은 기능을 수행함으로 직접 해보는 것이 좋다.
'Java' 카테고리의 다른 글
[Java] 상속(Inheritance) (0) | 2023.01.24 |
---|---|
[Java] Arrays.sort (0) | 2023.01.12 |
[Java] OOP(ObejectOrientedProgramming) (1) | 2022.12.05 |
[Java] Array (1) (0) | 2022.11.23 |
[Java] 메모리 구조 (Static,Stack,Heap) (0) | 2022.11.07 |