indexOf()
특정 문자 혹은 문자열이 처음으로 발견된 자리의 인덱스를 반환한다.
발견하지 못했다면 '-1'을 반환하는데 이를 이용해서 조건문에서 사용하는 경우가 많다.
시작하는 위치를 지정하지 않으면 0의 위치부터 탐색하게 된다.
사용방법
indexOf(찾을 문자 혹은 문자열, 시작할 위치의 인덱스)
String indexOfEx = "abcde123abcde"; //1번 System.out.println( indexOfEx.indexOf("a") ); //0 //2번 System.out.println( indexOfEx.indexOf("1") ); //5 //3번 System.out.println( indexOfEx.indexOf("de") ); //3 //4번 System.out.println( indexOfEx.indexOf("a", 7) ); //8 //5번 System.out.println( indexOfEx.indexOf("z") ); //-1
1번 예제의 경우 인덱스는 0부터 시작이기 때문에 처음으로 a가 등장하는 자리인 0을 반환한다.
2번 예제의 경우 숫자 1의 위치인 5를 반환한다.
3번 예제와 같이 문자열을 찾는 경우도 가능하다. de라는 문자열 중 첫번째 자리가 처음 나오는 위치인 3을 반환한다.
4번 예제는 찾을 문자 혹은 문자열과 시작할 위치를 지정한 경우인데 indexOfEx라는 변수안에는 a가 2번 등장한다. 1번처럼 작성하는 경우 처음 나오는 a의 위치를 반환하므로 두번째 a를 반환할 수 있도록 위치를 지정해준다. 예제의 경우 7번째 자리에서부터 a라는 문자가 있는 자리를 찾게되므로 8을 반환한다.
5번 예제는 indexOfEx라는 변수 안에는 "z"라는 문자가 없기 때문에 -1을 반환한다.
lastIndexOf()
indexOf()와 비슷하지만 lastIndexOf()는 이름처럼 특정 문자 혹은 문자열을 뒤에서부터 탐색하여 처음으로 발견된 위치의 인덱스를 발환한다.
발견하지 못했다면 indexOf()와 마찬가지로 '-1'을 반환한다.
시작하는 위치를 지정하지 않으면 가장 마지막의 위치부터 탐색하게 된다.
사용방법
lastIndexOf(찾을 문자 혹은 문자열, 시작할 위치의 인덱스)
String indexOfEx = "abcde123abcde"; //1번 System.out.println( indexOfEx.lastIndexOf("a") ); //8 //2번 System.out.println( indexOfEx.lastIndexOf("1") ); //5 //3번 System.out.println( indexOfEx.lastIndexOf("de") ); //11 //4번 System.out.println( indexOfEx.lastIndexOf("a", 7) ); //0 //5번 System.out.println( indexOfEx.lastIndexOf("z") ); //-1
1번 예제의 경우 문자열 중 뒤에서부터 봤을 때 "a"의 위치를 찾기 때문에 뒤에 있는 a의 인덱스인 8을 반환한다. 명심해야 하는 것은 찾는 것은 뒤에서부터 찾지만 인덱스 위치 자체는 가장 왼쪽이 0이기 때문에 뒤에서부터 인덱스로 착각해서 1번 예제의 결과가 4라고 생각해서는 안된다는 것이다.
2번 예제의 경우 indexOfEx라는 변수에는 "1"이라는 글자가 하나뿐이라 indexOf(), lastIndexOf()의 결과가 똑같기 때문에 5를 반환한다.
3번 예제의 경우 "de"라는 문자가 뒤에서부터 봤을 때 처음 등장하는 것은 두번째 de기 때문에 de중 첫글자의 인덱스인 11을 반환한다.
4번 예제의 경우 인덱스 7의 자리에서 시작해서 왼쪽방향으로 자리를 탐색하기 때문에 첫번째 a의 위치인 0을 반환하게 된다.
5번 예제와 같이 indexOfEx 변수에 없는 문자를 탐색하려고 하면 -1을 반환한다.
'개발 > JAVA' 카테고리의 다른 글
[JAVA] 자바에서 OPEN API 연결하기 (0) | 2021.12.21 |
---|---|
JDOM(Java Document Object Model) 관련 (0) | 2021.11.18 |
[SPRING] Mybatis에서 다중 insert하기 (3) | 2021.11.07 |
[SPRING] 파라미터 속 json 배열 꺼내쓰기 (0) | 2021.10.08 |
[SPRING] Mybatis에서 insert할 때 null 처리하기 (0) | 2021.10.07 |