특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스를 반환
만약 찾지 못했을 경우 "-1"을 반환
public class IndexOfTest{
public static void main(String[] args){
String indexOfTestOne = "Hello world";
String indexOfTestTwo = " Hello world";
System.out.println( indexOfTestOne.indexOf("o") ); // 4
System.out.println( indexOfTestOne.indexOf("x") ); // -1
System.out.println( indexOfTestOne.indexOf("o",5) ); // 7
System.out.println( indexOfTestTwo.indexOf("o") ); // 13
System.out.println( indexOfTestTwo.indexOf("el") ); // 10
}
}
.indexOf( "찾을 특정 문자" , "시작할 위치" )
이런식으로 사용해 주면된다.
"시작할 위치"는 생략이 가능하며, 생략할 경우 0번째 즉 처음부터 찾기 시작한다.
3번째 예시에서보면 "o" 를 5번째 인덱스부터 찾기 시작하라고 했을때, Hello world 에서 두번째 o의 위치를 잡는것이다.
첫번째 o 의 위치가 4이기 때문에 그다음부터 찾기 시작하여 두번째 o의 인덱스를 반환하는 것이다.
그리고 공백 역시 하나하나 전부 위치를 잡고있기때문에 indexOfTestTwo 에서 "o" 를 찾을경우 앞에 빈칸을 전부 포함하여 13번째 위치에 있다는 결과가 반환되는 것이다.
특정 문자나 문자열이 뒤에서부터 처음 발견되는 인덱스를 반환
만약 찾지 못했을 경우 "-1"을 반환
사용법은 indexOf 와 동일
public class IndexOfTest{
public static void main(String[] args){
String indexOfTestOne = "Hello world";
System.out.println( indexOfTestOne.lastIndexOf("o") ); // 7
System.out.println( indexOfTestOne.lastIndexOf("x") ); // -1
System.out.println( indexOfTestOne.lastIndexOf("o",5) ); // 4
}
}
뒤에서부터 찾기 시작해서 값을 반환하는데, 오해하지말아야 할 부분은 오른쪽에서 몇번째 위치하는지를 반환하는게 아니라 말 그대로 '인덱스', 즉 왼쪽에서 몇번째 위치하는지를 반환한다.
또한 시작인덱스를 줄 경우, 오른쪽에서 왼쪽으로 탐색하기때문에 시작점 기준으로 인덱스가 줄어드는 왼쪽부분으로 탐색을 진행한다.