정답은 영어로 구글링 하는 것에 있었다..
int lastIndexOf(String str, int fromIndex)
lastIndexOf() 메서드는 위의 형태로 사용하고 결과로 index값을 반환한다.
2번째 파라미터는 선언하면 그 인덱스에서 시작하여 마지막 index를 찾는 것으로 알려져 있다.
public class LastIndex_test {
public static void main(String[] args) {
/*2번째 lastIndex얻기*/
String imgURL = "https://shopping-phinf.pstatic.net/main_3246668/32466681076.20230207163634.jpg";
String wanted = imgURL.substring(imgURL.lastIndexOf(".",imgURL.lastIndexOf('.')-1)+1);
System.out.println(wanted);
}
}
다음과 같이 imgURL에 20230207163634.jpg라는 이름만 추출하고 싶었다.
그러기 위해 마지막 인덱스(lastIndexOf)로 검색하여, 두 번째 "."의 위치를 찾아서 추출해야 했다.
String wanted = imgURL.substring(imgURL.lastIndexOf(".",imgURL.lastIndexOf('.')-1)+1);
처음에 봤을 때 잘 이해가 되지 않았다..
그래서 번역을 돌려보았다.


이 그림을 보면 바로 이해할 수 있을 것이다.
lastIndexOf('e',10) 처럼 2번째 인자로 10을 주었다면 10번 인덱스부터 탐색을 시작하는데
바로 문자열의 0번째 인덱스를 향해(왼쪽 방향으로) 이동하게되어 index 7값이 반환 되는 것이다!!
댓글